フォルダ内の全エクセルに
マクロファイルに入っているシートを
一括コピーするマクロ
コード
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
注意点
マクロファイルのシートの順番はコピー先のファイルに挿入したい順番と逆にしておく。
①②③と挿入したい場合はマクロファイルでは③②①の順番にするときれいに並ぶ。