エクセルで複数ファイルを1つにまとめる方法|ブック結合・マージの決定版

- 「複数のブック(ファイル)
のデータを1か所に集約してリスト化したい。 」 - 「たくさんあるファイルの台帳を作成して、
管理しやすくしたい。 」
このような課題は、
用語の定義:マージ(横結合)
Excelでは「結合」
本記事で扱うのは データを縦に積み重ねる「追加」
横結合については、
| 結合の種類 | 別称・関連用語 | 意味 | 例 | 扱う記事 |
|---|---|---|---|---|
| 縦結合 | ユニオン・追加 | 同じ列構成のデータを縦に積み重ねる | 月別売上ファイルを1枚にまとめる | → 本記事で解説 |
| 横結合 | マージ・リレーションシップ・VLOOKUP・紐づけ | 異なる表を共通キーで横に紐付ける | 顧客マスタと注文履歴をIDで結合 | → 別記事へ |


複数ブックを「1ブックかつ複数シート」
Excelのバージョン
本記事は、
環境によっては、
※ 本記事の見出しでは「エクセル」
目次
結論|複数ブックを1枚のシートに結合する5つの選択肢
「1つのブックにまとめる」
- 一時作業・ファイル数が数個程度 :手動(コピペ)
- 一時作業・ファイル数が10個程度 :VSTACK関数
- 定期更新あり・ファイル数が多い : Power Query (★オススメ)
- 書式(色や罫線)
もコピーしたい :VBA
比較表|Excelで複数ファイルを1シートにまとめる手法
自分に最適な方法を以下の表から確認してください。
| 手法 (対応Ver) 難易度 | ✅メリット ❌デメリット | 向いているケース |
|---|---|---|
| 1. 手動 (すべて) ★☆☆ | ✅誰でもすぐできる。 ❌数が多いとミスが起きやすく、 | ・一時的な作業 ・少数ブック(5ブック程度が目安) ・形式がバラバラなデータの統合 |
| 2. VSTACK関数 (365 / 2024以降) ★★☆ | ✅シート数が多い場合でも、 ❌ブックの増減に弱い。 | ・一時作業かつ中程度のブック数 ・1ブック内の複数シート集約 |
| 3. Power Query (2016以降) ★★☆ | ✅ フォルダーに放り込むだけで自動更新。 ❌最初の設定に少し慣れが必要。 | ・定期的な更新作業 ・大量ブックの統合・フォルダ管理 ・ 標準的なビジネス環境 |
| 4. VBA (すべて) ★★★ | ✅複雑な条件分岐や書式・色のコピーが可能。 ❌ コードが書けないと修正不能。 | ・特殊な処理制御が必要 ・既存マクロとの連携 ・PQが使えない特殊環境 |
傾向として、

手法1. 手動|少数のコピペならこれが最速
ファイル数が2〜3個で、
【手順】
- コピー元のブックを開き、
対象範囲を選択して Ctrl + C でコピーする。 - 集約先のシートの末尾(データのすぐ下)
を選択して Ctrl + V で貼り付ける。

ファイル数が多いと貼り付け位置を間違えたり、
手法2. VSTACK関数|一時的なファイルマージに最適
Microsoft 365やExcel 2024以降で使える VSTACK関数 は、
手順:「串刺し参照」 で複数シートを1枚に
すでに1つのブック内にすべてのデータシートが集約されている場合、
事前準備:シートを1つのブックにまとめる方法
3D参照を使うために、
- 方法1. ドラッグ&ドロップ(最速)
:
コピー元とコピー先、両方のExcelウィンドウを並べ、 シートタブを別ブックへドラッグします。 Ctrlキーを押しながら ドラッグするとコピーになります。 Shiftキーを押しながら タブを選択すれば、 複数シートの一括操作も可能です。 - 方法2. 右クリックから移動・コピー :
まとめたいブックをすべて開き、シートタブを右クリックして「移動またはコピー」 を選択します。 移動先ブックを指定し、 「コピーを作成する」 にチェックを入れます。 この操作を各ブックで繰り返してください。
3D参照:複数シートを1枚に「串刺し」
同一ブック内の「1月」
例: =VSTACK('1月:12月'!A2:C100)
この数式1つを入力するだけで、

繰り返し行う作業で自動化 したい場合は、
手法3. Power Query|フォルダーごと一括統合する(推奨)
「ファイル数が多い」
前提条件:同形式ブックをフォルダーにまとめる
結合するブックには、
- 条件1 :結合するブックは、
「シート名」 や「セル配置」 がすべて共通 していること - 条件2 :結合するすべてのブックは、
1つのフォルダーにまとめて格納 しておくこと

「シート名」
フォルダー・ファイル構成の例
ここでは、
- マスタ.xlsx
- ソース
- ソースブック1.xlsx (Sheet1を持つ)
- ソースブック2.xlsx (Sheet1を持つ)
- ソースブック3.xlsx (Sheet1を持つ)手順:複数ブックを1つのテーブルにまとめる
複数のブック内のデータを1つに結合する手順は以下の通りです。
- 取り込み: フォルダーごと複数のブックを取り込む
- 結合の設定: 結合するブック内のデータを選択する
- データの整形: 不要なデータ(行 / 列)
の削除やデータ型の変換などを行う - 読み込み: 結合後のテーブルを配置する
取り込み
結合の設定
結合するブック内のデータを選択し、
- ダイアログで 結合 > データの結合と変換 を選択する。
(次の「データの整形」 が不要なら、 結合 > 結合および読み込み先... も可) 。 - 全ブック共通のシート( Sheet1 )
を選択し、 エラーのあるファイルをスキップする にチェックを入れ、 OK を選択する。

全ブック共通のテーブルがある場合は、

データの整形
データの更新・ファイル追加の方法
配置したデータを更新するときは、
ファイルの追加手順:
- 読み込み元として設定したフォルダー内に、
新しいExcelファイルを追加する。 - 結合先のブックを開き、
すべて更新 を実行する。 - これだけで、
追加したファイルのデータが自動的に末尾に結合されます。
一度設定してしまえば、

Power Queryは、
応用1:シート名やセル配置が異なる場合の対処法
シート指定の代わりに、
結合できるパターン
- パターン1. 複数ブックで「シート名」
と「セル配置」 がすべて共通している - → 「手順」
の節 を参照
- → 「手順」
- パターン2. 複数ブックで「テーブル名」
と「見出し名」 がすべて共通している - → 下記の手順
【大まかな手順】
- 各ブックで読み込みたい範囲を「テーブル(Ctrl+T)
」 に変換し、 テーブル名を統一する - 上記手順を行い、
「Step2.結合の設定」 のiiで「テーブル」 を選択する
応用2:ファイル名などの付随情報を取得する
ファイルパスや更新日などのブック(ファイル)
対応方法は主に2つです。
▼ 方法1, 方法2の結果
-
方法1. 「読み込み」
クエリのみを使用する
ブックの 中身のデータが不要な場合 は、この方法ですぐに実装できます。
結合の設定(Step2)のときに、 ダイアログで 読み込み先... を選択します。 -
方法2. 「結合」
クエリを修正する
結合プロセスの途中で削除されてしまう列( Source.Name など)を残すように、 クエリ内の処理ステップを修正します。 結合プロセス中で削除される列の例
- ファイル名 : Source.Name 列
- パス : Folder Path 列
- 作成日 : Date created 列
- 修正日 : Date modified 列
「データの整形」
の最初に、 Power Queryエディター右側「適用したステップ」 内の「削除された他の列1」 を削除することで、 Source.Name (ファイル名) などの情報を残すことができます。

トラブルシューティング:よくあるエラーと対処法
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| 列名が一致しない | 各ブックで列名が異なる | 各ブックでテーブル化し、 |
| シート名が違う | 読み込み対象のシート名がバラバラ | テーブル名で管理し、 |
| ~$ファイル名が読み込まれる | 一時ファイルが混入している | 対象フォルダー内のすべてのブックを閉じてから更新する |
手法4. VBA|特殊な処理が必要な上級者向け
Power Queryで対応できない「書式のコピー」
VBAが必要になるケース
- セルの色や罫線などの「書式」
ごとコピーしたい場合 - 特定の条件に一致するシート名だけをループ処理したい場合
実装例:フォルダー内のファイルをループして集約
以下は、
Sub MergeWorkbooks()
Dim f As String, p As String, wb As Workbook
p = ThisWorkbook.Path & "\ソース\" 'フォルダーパスを指定
f = Dir(p & "*.xlsx")
Do While f <> ""
Set wb = Workbooks.Open(p & f)
'2行目以降を、このブックのシート1の末尾へコピペ
wb.Sheets(1).UsedRange.Offset(1).Copy _
ThisWorkbook.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1)
wb.Close False
f = Dir()
Loop
End Sub
VBAは強力ですが、
まとめ|Power Queryで結合作業は自動化できる
用途別のオススメは以下の通りです。
- 一時作業・ファイル数が数個程度 :手動(コピペ)
- 一時作業・ファイル数が10個程度 :VSTACK関数
- 定期更新あり・ファイル数が多い : Power Query (★オススメ)
- 書式(色や罫線)
もコピーしたい :VBA
上記で説明した通り、
Power Queryの結合機能は以下にも応用できます。
- ファイル・書類の台帳作成
- 1ブック当たりの上限行数(約100万行)
を超えたデータの取り扱い

Power Queryを活用できるとデータの活用・再利用が進み、




