【エクセル】複数のエクセルファイル(ブック)内のシートを一つにまとめる方法
2023.07.04 /

本記事ではMicrosoftのエクセルにおける、複数のエクセルファイル(ブック)内のシートを一つにまとめる方法について解説していきます。
仕事でエクセルを使っていると、ファイル数が膨大な量になったエクセル群を1つのエクセルにまとめたい場面があります。
複数のエクセルファイルのシートを一つにまとめる方法として以下2つの方法があります。
- 手動で1つ1つコピーしてまとめる方法
- マクロを使って複数のシートをまとめる方法
手動で作業すると多くの時間がかかってしまいますが、マクロを使うことであっという間に複数のエクセル内のシートを1つにまとめることができます。
本記事を通して、複数のエクセルファイル内のシートを一つにまとめる方法について理解を深めてください。
ここではMicrosoft 365による最新のエクセルを使用しています。
Microsoft 365とはMicrosoft社が提供しているOfficeアプリケーション(Outlook、Word、Excel、SharePoint、PowerPointなど)やサービスを利用できるサブスクリプション(月額課金制)のクラウドサービスです

Microsoft365とは:どのようなサービスかわかりやすく解説
2025.03.22 記事を追記・修正いたしました
複数のブック内のシートを一つにまとめる
業務でエクセルを使用しているとさまざまな場面で複数のエクセルシートを1つにまとめる作業は行われます。特にファイルの整理や集計などのシーンで頻繁に行われます。
エクセルのシートを一つにまとめる場面としては次のような場面が考えられます。
- 月別で作成していたシートを年間データとして作成するとき
- 店舗ごと・部門ごとの売上などをまとめるとき
- 関連するデータをまとめて分析や重複チェックを行いたいとき
上記はほんの一部ですが、このようにシートを統合する場面は多く、シート統合をスムーズに行えることで業務の効率化が測れます。
本記事では複数のブック内のシートを一つにまとめる方法として以下2つの方法を紹介します。
- 手動で1つ1つコピーしてまとめる方法
- マクロを使って複数のシートをまとめる方法
現時点ではエクセルの既存の機能で複数のエクセル内のシートを簡単に1つにまとめることはできません。手動で時間をかけてまとめる、またはマクロを作成してシートをまとめるしか方法がありません。
それぞれの方法について次項より詳しく解説していきます。
すべてのシートで「列順や項目数が同じ」「テーブルの構成が同じ」などの条件を満たしている場合は各シートのテーブルをPower Queryでまとめることはできます。今回は各シートの構造や中身がバラバラであるという想定で全シートを統合する方法を解説しています
手動で1つ1つコピーしてまとめる方法
手動で1つ1つのエクセルをコピーしてシートを1つにまとめる方法は以下の通りです。
- シートのタブを右クリックし、表示されたメニューから「移動またはコピー」を選択する
- 表示された画面から「移動先のブック」「挿入先」を選択し、「コピーを作成する」にチェックをしたら「OK」をクリック


上記の操作により「移動先のブック」で選んだブックにシートのコピーが挿入されます。1つのファイルに複数シートがある場合は、一度の操作ですべてコピーできるようにすべてのシートを選択した状態で上記操作を行いましょう。
すべてのシートを選択した状態にする方法は以下の通りです。
- Ctrlキーを押しながらすべてのシートタブをクリックする
- Shiftキーを押しながら最初と最後のシートをクリックする
これをまとめたいエクセルのシート分同じ操作をすることで、一つのブックにシートをまとめることができます。
シートを別ファイルにコピーする方法についてより詳しく知りたい方は以下記事をご参照ください。

【エクセル】シートをコピーする5つの方法:別ファイルへコピーやショートカット
マクロを使って複数のシートを1つにまとめる方法
ここからはマクロを使った複数のエクセル内のシートを1つにまとめる方法を解説します。
マクロとは
マクロとはコンピューターやアプリケーションの操作を自動化する機能です。マクロはエクセルで使う人の割合が非常に高いですが、エクセル以外でもOutlookやWordなどでもマクロを作成して利用することができます。
「マクロ=VBA」と考える方が多いですが、厳密には異なります。マクロは操作を自動化する機能そのものを表し、VBAはオフィス製品のマクロを作成するためのプログラミング言語です。
マクロとVBAについて詳しく知りたい方は以下記事をご参照ください。

【エクセル】マクロとVBAの違いについて
VBAのコード
実際に私が作成したマクロのVBAコードは以下の通りです。
Sub combineSheets()
Dim Files As Variant
Dim File As Variant
Dim InputSheet As Worksheet
Set InputSheet = Worksheets(1)
Dim From As Workbook
Application.ScreenUpdating = False
Files = Application.GetOpenFilename("Excelブック,*.xls?", MultiSelect:=True)
If TypeName(Files) = "Boolean" Then: Exit Sub
For Each File In Files
Set From = Workbooks.Open(Filename:=File)
From.Sheets().Copy After:=InputSheet
From.Close SaveChanges:=False
Next File
Application.ScreenUpdating = True
End Sub
マクロは以下の流れで動作します。
- 統合するエクセルファイルを選択するダイアログが表示される
- 選択されたエクセル内すべてのシートを現在のブックの先頭シートの後ろにコピーする
- コピー元のファイルを閉じる
このマクロの流れについて次項より詳しく解説します。
マクロの流れ
作成したマクロの流れを解説していきます。
マクロは新規で作成したエクセル内などに追加して利用してください。マクロを実行すると、エクセルを選択するダイアログが表示されます。

複数のファイルを選択できますので、「Ctrlキーを押しながらクリック」や「Shiftキーを押しながらクリックによる範囲選択」、「Ctrlキーを押しながらAキーによる全選択」などを使って、対象のエクセルを選択してください。
上記の操作により、マクロを実行したエクセルの1番目のシート移行に選択したエクセルのシートがすべて追加されます。
このマクロでは元となったエクセルは削除せずに残してあります。必要があれば別の場所に移してください。必要なければ手動で削除する、またはマクロに削除するコードを追加してください。
まとめ
本記事「【エクセル】複数のエクセルファイル(ブック)内のシートを一つにまとめる方法」はいかがでしたか。
ここでは以下の項目について解説してきました。
- 複数のエクセルファイル内のシートを1つにまとめるとは
- 手動で1つ1つコピーしてまとめる方法
- マクロを使ってシートをまとめる方法
本記事で紹介したコードはコピペして利用、または一部編集してご自分に合ったマクロにして使ってください。