複数のブックの表を1枚にまとめるVBA
VBA
Dim 主ブック As Workbook
Dim ファイル名 As Variant
Dim ファイル As String
Dim ブック As Workbook
Dim シート As Worksheet
Dim 最終行 As Long
' 新しいブックを作成
Set 主ブック = Workbooks.Add
' ファイルの選択
ファイル名 = Application.GetOpenFilename(FileFilter:="Excelファイル (*.xls; *.xlsx), *.xls; *.xlsx", Title:="ブックを選択してください", MultiSelect:=True)
' キャンセルがクリックされた場合は終了
If VarType(ファイル名) = vbBoolean Then
If ファイル名 = False Then
Exit Sub
End If
End If
' 選択された各ブックからデータを取得
For i = LBound(ファイル名) To UBound(ファイル名)
ファイル = ファイル名(i)
Set ブック = Workbooks.Open(ファイル)
' 最終行を取得
最終行 = ブック.Sheets(1).Cells(ブック.Sheets(1).Rows.Count, "A").End(xlUp).Row
' データを主ブックにコピー
ブック.Sheets(1).Range("A1:Z" & 最終行).Copy 主ブック.Sheets(1).Cells(主ブック.Sheets(1).Rows.Count, "A").End(xlUp).Offset(1)
' ブックを閉じる
ブック.Close SaveChanges:=False
Next i
End Sub
実行方法
VBAコードを実行する手順
VBAエディタを開く:
Excelを開いたら、Alt + F11を押してVBAエディタを開きます。
新しいモジュールを挿入:
VBAエディタ内で、[挿入]メニューから「モジュール」を選択して新しいモジュールを挿入します。
コードを貼り付ける:
新しく作成されたモジュールに、上記で提供されたVBAコードをコピーして貼り付けます。
実行:
VBAエディタを閉じてExcelに戻ります。
Alt + F8を押して、[マクロ]ダイアログボックスを開きます。
"結合マクロ"またはコード内で指定したマクロ名を選択し、[実行]ボタンをクリックします。
ファイルを選択:
マクロが実行されると、ファイルを選択するためのダイアログボックスが表示されます。結合したいExcelファイルを選択して[OK]ボタンをクリックします。
処理の確認:
マクロは各選択されたブックからデータを取得して、新しいブックに追加します。
メモ
ChatGTP3.5で3回ほど作り直してもらって成功。
まとめられるのは各ブックの1枚目のシートのみ。
月間精算書の年間まとめなどに使う。
この記事が気に入ったらサポートをしてみませんか?