マクロが入ってるエクセルと同じフォルダにあるエクセルの
それぞれのシートを
マクロが入ってるエクセルに統合する。
コード
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つのシートになっているが、統合元のエクセルにある全てのシートが統合される。