今回は、ブックに複数あるシートのデータを「まとめ」のシートにコピペするコードです。
- Sub Matome()
- Dim i As Integer
- Dim lRow As Long, lCol As Long, lRow2 As Long
- Application.ScreenUpdating = False
- '----全データシートの有無をチェックします
- call sh_check
- '----列見出しをコピーします
- Worksheets(2).Range("1:1").Copy Worksheets(1).Range("A2")
- For i = 2 To Worksheets.Count
- With Worksheets(i)
- lRow = .Cells(Rows.Count, 1).End(xlUp).Row
- lCol = .Cells(1, Columns.Count).End(xlToLeft).Column
- '----シートのデータが2行以上の場合にコピーします
- If lRow >= 2 Then
- lRow2 = Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1
- .Activate
- .Range(Cells(2, 1), Cells(lRow, lCol)).Copy Worksheets(1).Cells(lRow2, 1)
- End If
- End With
- Next i
- Worksheets(1).Activate
- Application.ScreenUpdating = True
- End Sub
6行目で「まとめ」シートがブック内にあるかどうかをチェックしてます。(他のマクロで)
8行目はまとめる前のシートに見出しがある場合を想定してるので、必要なければ消してください。
10~20行目はsh_checkで「まとめ」シートを先頭のワークシートにしているので、ワークシートの2枚目から最後まで、ワークシートの行が2行以上の場合に「まとめ」シートにコピーをすることを繰り返します。
最後に「まとめ」シートのWorksheets(1)をアクティブにして完了ですね。
だいぶ前に作成したものなので、わざわざコピペするためにアクティブにしてたりしてますが、何十枚もシートがなければそんなに時間はかからないはずですのでこのままのっけました。
では、また。