社員の日報をまとめる、部署ごとの報告をまとめるなど、他のExcelのシートを一つのExcelにまとめたいことはあると思います。
本記事では、他のExcel(エクセル)のシートを一つのExcelにまとめるマクロを紹介します。
同じExcel内のシートコピーの方法を知りたい方は以下の記事をご覧ください。

他の複数のExcel(エクセル)のシートをコピーするマクロ
1. VBAのソースコードを書く
ソースコードを書きましょう。処理内容はソースのコメントに書いてあります。

右上の”copy”をクリックしたらソースをコピーできますよ!
copy
Sub OtherBookSheetsCopy()
Dim fromWorkBook As Workbook
Dim folderPath
Dim fileName As String
' 画面の更新が見えないようにする
Application.ScreenUpdating = False
' フォルダパスを変数に設定する
folderPath = thisWorkBook.Path
' コピーするファイルのファイル名を取得する
fileName = Dir(folderPath & "\*.xlsx")
' ファイル名が取得できた場合にループする
Do While fileName <> ""
' コピーするファイルを開く
Set fromWorkBook = Workbooks.Open(folderPath & "\" & fileName)
' コピーするファイルの1シート目を、このファイルの1シート目にコピーする
fromWorkBook.Worksheets(1).Copy before:=thisWorkBook.Worksheets(1)
' コピーするファイルを閉じる
fromWorkBook.Close
' 次にコピーするファイルのファイル名を取得する
fileName = Dir()
Loop
' 画面の更新が見えるようにする
Application.ScreenUpdating = True
End Sub
本マクロのポイント
- マクロ実行ファイルと、他ブックは同じフォルダに保存するようにしてあります。
- Dir関数は、引数に一致する最初のファイル名を返します。フォルダー内のすべてのファイルに対して反復処理を行うには、空の文字列を指定します。(参考:Dir関数)
- 1シート目をコピーする設定です。ソースコードを変更すればシート名を指定することも可能です。Worksheets(“シート名”)のシート名を変更してください。
2. 準備
マクロを保存してあるファイルと同じフォルダに、コピーしたいファイルを保存します。
なお、本記事ではシート名はファイル名と同じにしてあります。
3. マクロを実行する
キーボードの【F5】を押す、または画面上部の【▶】を押して、マクロを実行します。
他ブックのシートが追加されていることを確認します。
ここまで確認出来たら完了です!
↓ 参考にしている書籍です!