フォルダ内のエクセルファイルの全てのシートを一つのブックに統合するマクロ


マクロが入ってるエクセルと同じフォルダにあるエクセルの

それぞれのシートを


マクロが入ってるエクセルに統合する。

コード

Sub シート統合()
    Dim Path As String
    Dim FileName As String
    Dim CopyWB As Workbook
    Dim SourceWB As Workbook
    Dim SourceWorksheet As Worksheet
    
    'マクロエクセルが保存されているフォルダのパスを取得
    Path = ThisWorkbook.Path & "\"
    
    'フォルダの中で拡張子がxlsxのファイルを取得
    FileName = Dir(Path & "*.xlsx")
    
    'マクロブックをコピー先ブックに設定する
    Set CopyWB = ThisWorkbook
    
    ' 確認ダイアログを表示しないように設定
    Application.DisplayAlerts = False
    
    '繰り返し処理
    Do While FileName <> ""
        
        'フォルダ内のエクセルを開いて変数に設定
        Set SourceWB = Workbooks.Open(Path & FileName)
        
        ' 各ワークシートに対して処理
        For Each SourceWorksheet In SourceWB.Sheets
        
        ' コピー元ワークシートをコピー先ブックにコピー
        SourceWorksheet.Copy after:=CopyWB.Sheets(CopyWB.Sheets.Count)
        
        ' 繰り返し
        Next SourceWorksheet
        
        'ファイルを閉じる
        SourceWB.Close
        
        'ファイルを再取得
        FileName = Dir
        
    '繰り返し
    Loop
    
    'コピー先ブックでいらないシート1を削除
    CopyWB.Sheets(1).Delete
    
     ' 確認ダイアログの設定を元に戻す
    Application.DisplayAlerts = True
    
    MsgBox "シート統合完了"
    
End Sub

注意点

統合先はマクロブック。
マクロブックにもともとあるシート(1枚)は削除されるため、マクロブックは空白の状態にしておく。
削除したくない場合は、以下のコードを削除。

 'コピー先ブックでいらないシート1を削除
    CopyWB.Sheets(1).Delete

画像では、1つのブックに1つのシートになっているが、統合元のエクセルにある全てのシートが統合される。