複数のエクセルファイルを1つにまとめる方法。シート名は各ファイル名を利用。
Excelを開く
Excelを開き、新しいブックを作成します。
VBAエディタを開く
「Alt + F11」キーを押してVBAエディタを開きます。
モジュールを挿入
「挿入」->「モジュール」をクリックし、以下のコードをコピーして貼り付けます。
Sub MergeExcelFiles()
Dim wbDst As Workbook
Dim wbSrc As Workbook
Dim wsSrc As Worksheet
Dim FolderPath As String
Dim Filename As String
' 統合するフォルダのパスを設定してください
FolderPath = "C:\path\to\your\folder\" ' フォルダのパスを指定
' 最後にバックスラッシュを追加する
If Right(FolderPath, 1) <> "\" Then FolderPath = FolderPath & "\"
' マクロを実行しているブックを対象とする
Set wbDst = ThisWorkbook
' フォルダ内の最初のファイルを取得する
Filename = Dir(FolderPath & "*.xlsx")
' フォルダ内の全てのファイルを処理するループ
Do While Filename <> ""
' ファイルを開く
Set wbSrc = Workbooks.Open(FolderPath & Filename)
' 各シートをコピーして新しいシートとして追加する
For Each wsSrc In wbSrc.Worksheets
wsSrc.Copy After:=wbDst.Sheets(wbDst.Sheets.Count)
wbDst.Sheets(wbDst.Sheets.Count).Name = Left(Filename, Len(Filename) - 5)
Next wsSrc
' ソースブックを閉じる
wbSrc.Close False
' 次のファイル名を取得する
Filename = Dir()
Loop
End Sub
マクロを実行
VBAエディタを閉じ、「Alt + F8」キーを押して「MergeExcelFiles」マクロを選択し、「実行」をクリックします。
詳細説明
FolderPath
統合するエクセルファイルが保存されているフォルダーのパスを指定します。必ず、フォルダーのパスの最後にバックスラッシュ \ を追加してください。
Filename
Dir 関数を使ってフォルダー内のすべてのエクセルファイルを取得します。
wbDst
このマクロを実行しているブックを表します。
wbSrc
各ソースブックを開いて処理します。
wsSrc
ソースブック内の各シートを表します。
まとめ
このマクロを実行することで、指定したフォルダー内のすべてのエクセルファイルが1つのブックに統合され、各シートの名前が元のファイル名になります。