複数ブックのデータを一つのまとめブックのシートにまとめる
動画版「マクロ講座59回」です。
今回は、複数ブックの同じ形式のデータを、ひとつのシートにまとめるというマクロを作成します。
データの量が、何千件もあったり、対象のブックが大量にある場合には、とても時短になり、以前より登録者様から要望のあったマクロです。
この作成の中では、シートのオブジェクト名を分かりやすいように変更して、記述するコードを短くするという方法も紹介しています。
内容は難しいかもしれませんが、少しでも理解しやすくするために、変数に日本語も利用しました。
さらに新しいメソッドなどはなく、今まで使ってきたメソッドやプロパティを使用しています。
(サンプルファイルは、こちらから 59回サンプルデータ)
まとめる対象のブックは、"C:\test\"にある設定。
Sub 複数ブックのデータをまとめる()
Dim 支店bk As Workbook, 支店sh As Worksheet
Dim rng As Range, sfname As String
Dim lastRまとめ As Long
Const 支店_DIR As String = "C:\test\"
sfname = Dir(支店_DIR & "*.xlsx")
If sfname = "" Then Exit Sub
matome.Cells(1, 1).CurrentRegion.Offset(1, 0).Clear
Application.ScreenUpdating = False
Do
Set 支店bk = Workbooks.Open(Filename:=支店_DIR & sfname)
Set 支店sh = 支店bk.Worksheets(1)
支店sh.Rows(1).Delete
Set rng = 支店sh.UsedRange
lastRまとめ = matome.Cells(matome.Rows.Count, 1).End(xlUp).Row
lastRまとめ = lastRまとめ + 1
rng.Copy Destination:=matome.Cells(lastRまとめ, 1)
支店bk.Close SaveChanges:=False
sfname = Dir()
Loop While sfname <> ""
Application.ScreenUpdating = True
End Sub