複数ブックのデータを一つのまとめブックのシートにまとめる
複数ブックのデータを一つのまとめブックのシートにまとめる
複数ブックのデータを一つのまとめブックのシートにまとめる
動画版「マクロ講座59回」です。
今回は、複数ブックの同じ形式のデータを、ひとつのシートにまとめるというマクロを作成します。
データの量が、何千件もあったり、対象のブックが大量にある場合には、とても時短になり、以前より登録者様から要望のあったマクロです。
この作成の中では、シートのオブジェクト名を分かりやすいように変更して、記述するコードを短くするという方法も紹介しています。
内容は難しいかもしれませんが、少しでも理解しやすくするために、変数に日本語も利用しました。
さらに新しいメソッドなどはなく、今まで使ってきたメソッドやプロパティを使用しています。
(サンプルファイルは、こちらから 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