Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7483 / 76732 ←次へ | 前へ→

【74836】1つのシートへまとめる方法
質問  lol  - 13/9/25(水) 19:02 -

引用なし
パスワード
   こんにちは!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)はどのような意味でしょうか!?
1 hits

【74836】1つのシートへまとめる方法 lol 13/9/25(水) 19:02 質問
【74837】Re:1つのシートへまとめる方法 kanabun 13/9/26(木) 0:48 発言
【74840】Re:1つのシートへまとめる方法 こたつねこ 13/9/26(木) 10:05 発言

7483 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free