複数のExcelファイルを一つにまとめる
複数のExcelファイル(ブック)を一つのExcelファイルにまとめたい/結合したいということが稀にある。
1. 以下のマクロを登録したブックを用意する。
2. まとめたいExcelファイル(ブック)を同じフォルダ(ディレクトリ)に置く。
3. マクロを実行する。
4. 各Excelファイル(ブック)の全シートが一つのファイル(ブック)にコピーされる。
Sub 結合() Dim MergeBook As Workbook '統合先ブック Dim CurrentBook As Workbook '作業するブック Dim CurrrentPath As String '作業するフォルダのパス Dim Filename As String '作業するファイル名のリスト Dim N As Integer '対象ブック数のカウンタ Application.ScreenUpdating = False '画面更新を停止 Set MergeBook = ThisWorkbook 'マクロ実行するブックを統合先ブックとする CurrentPath = MergeBook.Path Filename = Dir(CurrentPath & "\*.xls") 'フォルダ内のブック名を取得 N = 0 Do While Filename <> Empty If Filename <> MergeBook.Name Then '統合先ブックと異なるブック名であれば Set CurrentBook = Workbooks.Open(CurrentPath & "\" & Filename) CurrentBook.Worksheets.Copy After:=MergeBook.Sheets(MergeBook.Sheets.Count) CurrentBook.Close N = N + 1 End If Filename = Dir 'フォルダ内の次のブック名を取得 Loop Application.ScreenUpdating = True '画面更新を再開 MsgBox N & "件のブックを処理しました。" End Sub
いざという時のためにマクロ登録したブックを用意しとこ。