|
▼基礎勉強中 さん:
>・データ範囲はB2:D20→E2:G20→H2:J20→K2:M20。(step2? step3?)
データ範囲 [B2:D20] は 先頭セルと縦横サイズであらわすと、
Range("B2").Resize(19,3)
ということですね。
Cells(2,2).Resize(19,3)
という表現でもいいですね。
↓こういう風に整理してみると、変化する部分が 列位置だけということが
分かります。
'1番目のグラフ 範囲 B2:D20 先頭セル Cells(2,2) 大きさ 19行×3列
'2番目のグラフ 範囲 E2:G20 先頭セル Cells(2,5) 大きさ 19行×3列
'3番目のグラフ 範囲 H2:J20 先頭セル Cells(2,8) 大きさ 19行×3列
'4番目のグラフ 範囲 K2:M20 先頭セル Cells(2,11) 大きさ 19行×3列
変化するのは 列位置(最初は 2列目、以後 +3列づつ右方向にシフト)なので
これを単純に変数で 変化させれば(+3)いいと思います。
↓サンプルです(Shapes.AddChart というメソッドがなかったので、
ChartObjects.Add で埋め込みグラフを作成しています)
Sub Try1()
Dim n As Long, nCol As Long
Dim rngX As Range
Dim rngY As Range
Dim Pos As Range
With ActiveSheet
Set rngX = .Range("A2:A20")
Set Pos = .Range("B22").Resize(13, 10) '埋め込みグラフの位置
nCol = 2 '◆最初の列位置
For n = 1 To 3
Set rngY = .Cells(2, nCol).Resize(19, 3)
With .ChartObjects.Add(Pos.Left, Pos.Top, Pos.Width, Pos.Height).Chart
.SetSourceData Source:=Union(rngX, rngY)
.ChartType = xlLineMarkers
End With
nCol = nCol + 3 '◆次の列位置
Set Pos = Pos.Offset(14) '次のグラフ位置
Next
End With
End Sub
|
|