複数ブックのデータを一つのまとめブックのシートにまとめるマクロ講座動画解説 Excel

複数ブックのデータを一つのまとめブックのシートにまとめる

マクロ講座59回
マクロ講座

複数ブックのデータを一つのまとめブックのシートにまとめる

複数ブックのデータを一つのまとめブックのシートにまとめる

動画版「マクロ講座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