| 
    
     |  | ▼基礎勉強中 さん: 
 >・データ範囲は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
 
 |  |