| 
    
     |  | こんにちは!VBA初心者です(__) 
 下記のマクロはグループごとにシートが作成されるため、シートの数が100を越えてしまいます。なのでこれらのデータを一枚のシートに納めたいのですが、どこをどのように変えたら良いのかわかりません。出来れば分かりやすく教えて下さい。お願いします!!
 
 Sub MkGraphHaru()
 Dim i, j, k As Long '汎用カウンタ
 Dim MaxRow As Long  '最終行
 Dim MaxRowGraph As Long 'グラフ作成時の行数
 Dim plant As String 'プラントコード
 Dim item_code As String '品目コード
 Dim item_name As String '品目名
 Dim start_grp As Long  '同じグループの開始行
 Dim ws As Worksheet '最初の(データの含まれる)ワークシート
 
 '最終行を取得(連続データでなければ、動作不良になる)
 MaxRow = Range("A1").End(xlDown).Row
 '最初のワークシートを記憶
 Set ws = ActiveSheet
 '初期値
 plant = Cells(2, 1)
 item_code = Cells(2, 2)
 item_name = Cells(2, 3)
 start_grp = 2
 
 '2行目から最終行までループ
 For i = 2 To MaxRow
 'i行目のプラントコードと品目コードのどちらかが保存済みのものと異なるとき
 If (plant <> ws.Cells(i, 1)) Or (item_code <> ws.Cells(i, 2)) Then
 'ワークシートを追加
 'プラント、品目コード、品目名
 Worksheets.Add.Name = plant & item_code & item_name
 
 '先頭行を新しいワークシートにコピー
 ws.Range("A1:Q1").Copy _
 Worksheets(plant & item_code & item_name).Range("A1")
 'データを新しいワークシートにコピー
 ws.Range(start_grp & ":" & i - 1).Copy _
 Worksheets(plant & item_code & item_name).Range("A2")
 
 'グラフを追加する
 Worksheets(plant & item_code & item_name).Shapes.AddChart.Select
 'グラフシートの行数
 MaxRowGraph = Worksheets(plant & item_code & item_name).Range("A1").End(xlDown).Row
 'グラフの種類
 ActiveChart.ChartType = xlLineMarkers
 'データの範囲
 ActiveChart.SetSourceData Source:=Range("1:" & MaxRowGraph)
 
 
 'グループ情報を改める
 plant = ws.Cells(i, 1)
 item_code = ws.Cells(i, 2)
 item_name = ws.Cells(i, 3)
 start_grp = i
 
 End If
 Next i
 End Sub
 
 余談ですが、(start_grp & ":" & i - 1)はどのような意味でしょうか!?
 
 |  |