指定したシートをフォルダ内の全エクセルに一括コピーして挿入するマクロ


フォルダ内の全エクセルに

マクロファイルに入っているシートを

一括コピーするマクロ



コード

Sub シート一括コピー()
    Dim Path As String
    Dim FileName As String
    Dim SourceWB As Workbook
    Dim CopyWB As Workbook
    Dim SourceWS As Worksheet
    
    'マクロエクセルが保存されているフォルダのパスを取得
    Path = ThisWorkbook.Path & "\"
    
    'フォルダの中で拡張子がxlsxのファイルを取得
    FileName = Dir(Path & "*.xlsx")
    
    'マクロブックをコピー元ブックに設定する
    Set SourceWB = ThisWorkbook
    
    '繰り返し処理
    Do While FileName <> ""
        
        'フォルダ内のエクセルを開いて変数に設定
        Set CopyWB = Workbooks.Open(Path & FileName)
        
        ' マクロエクセルの全てのワークシートに対して処理
        For Each SourceWS In SourceWB.Sheets
        
        ' コピー元ワークシートをコピー先ブックにコピー
        SourceWS.Copy before:=CopyWB.Sheets(1)
        
        ' 繰り返し
        Next SourceWS
        
        'ファイルを保存して閉じる
        CopyWB.Close SaveChanges:=True
        
        'ファイルを再取得
        FileName = Dir
        
    '繰り返し
    Loop
    
    MsgBox "シートコピー完了"
    
End Sub

注意点

マクロファイルのシートの順番はコピー先のファイルに挿入したい順番と逆にしておく。
①②③と挿入したい場合はマクロファイルでは③②①の順番にするときれいに並ぶ。