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

時計 2023.07.04 / 時計

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

記事ではMicrosoftのエクセルにおける、複数のエクセルファイル(ブック)内のシート一つにまとめる方法について解説していきます。

仕事でエクセルを使っていると、ファイル数が膨大な量になったエクセル群を1つのエクセルにまとめたい場面があります。

複数のエクセルファイルのシートを一つにまとめる方法として以下2つの方法があります。

  • 手動で1つ1つコピーしてまとめる方法
  • マクロを使って複数のシートをまとめる方法

手動で作業すると多くの時間がかかってしまいますが、マクロを使うことであっという間に複数のエクセル内のシートを1つにまとめることができます。

本記事を通して、複数のエクセルファイル内のシートを一つにまとめる方法について理解を深めてください。

ここではMicrosoft 365による最新のエクセルを使用しています。

Microsoft用語の確認

Microsoft 365とはMicrosoft社が提供しているOfficeアプリケーション(Outlook、Word、Excel、SharePoint、PowerPointなど)やサービスを利用できるサブスクリプション(月額課金制)のクラウドサービスです

2025.03.22 記事を追記・修正いたしました

複数のブック内のシートを一つにまとめる

業務でエクセルを使用しているとさまざまな場面で複数のエクセルシートを1つにまとめる作業は行われます。特にファイルの整理や集計などのシーンで頻繁に行われます。

エクセルのシートを一つにまとめる場面としては次のような場面が考えられます。

エクセルシートを一つにまとめる場面
  • 月別で作成していたシートを年間データとして作成するとき
  • 店舗ごと・部門ごとの売上などをまとめるとき
  • 関連するデータをまとめて分析や重複チェックを行いたいとき

上記はほんの一部ですが、このようにシートを統合する場面は多く、シート統合をスムーズに行えることで業務の効率化が測れます。

本記事では複数のブック内のシートを一つにまとめる方法として以下2つの方法を紹介します。

  • 手動で1つ1つコピーしてまとめる方法
  • マクロを使って複数のシートをまとめる方法

現時点ではエクセルの既存の機能で複数のエクセル内のシートを簡単に1つにまとめることはできません。手動で時間をかけてまとめる、またはマクロを作成してシートをまとめるしか方法がありません。

それぞれの方法について次項より詳しく解説していきます。

注意点

すべてのシートで「列順や項目数が同じ」「テーブルの構成が同じ」などの条件を満たしている場合は各シートのテーブルをPower Queryでまとめることはできます。今回は各シートの構造や中身がバラバラであるという想定で全シートを統合する方法を解説しています

手動で1つ1つコピーしてまとめる方法

手動で1つ1つのエクセルをコピーしてシートを1つにまとめる方法は以下の通りです。

  1. シートのタブを右クリックし、表示されたメニューから「移動またはコピー」を選択する
  2. エクセル:「移動またはコピー」を選択
  3. 表示された画面から「移動先のブック」「挿入先」を選択し、「コピーを作成する」にチェックをしたら「OK」をクリック
  4. エクセル:「移動先のブック」「挿入先」を選択し、「コピーを作成する」にチェックをしたら「OK」をクリック

上記の操作により「移動先のブック」で選んだブックにシートのコピーが挿入されます。1つのファイルに複数シートがある場合は、一度の操作ですべてコピーできるようにすべてのシートを選択した状態で上記操作を行いましょう。

すべてのシートを選択した状態にする方法は以下の通りです。

  • Ctrlキーを押しながらすべてのシートタブをクリックする
  • Shiftキーを押しながら最初と最後のシートをクリックする

これをまとめたいエクセルのシート分同じ操作をすることで、一つのブックにシートをまとめることができます。

シートを別ファイルにコピーする方法についてより詳しく知りたい方は以下記事をご参照ください。

マクロを使って複数のシートを1つにまとめる方法

ここからはマクロを使った複数のエクセル内のシートを1つにまとめる方法を解説します。

マクロとは

マクロとはコンピューターやアプリケーションの操作を自動化する機能です。マクロはエクセルで使う人の割合が非常に高いですが、エクセル以外でもOutlookやWordなどでもマクロを作成して利用することができます。

「マクロ=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

マクロは以下の流れで動作します。

  1. 統合するエクセルファイルを選択するダイアログが表示される
  2. 選択されたエクセル内すべてのシートを現在のブックの先頭シートの後ろにコピーする
  3. コピー元のファイルを閉じる

このマクロの流れについて次項より詳しく解説します。

マクロの流れ

作成したマクロの流れを解説していきます。

マクロは新規で作成したエクセル内などに追加して利用してください。マクロを実行すると、エクセルを選択するダイアログが表示されます。

ファイル選択ダイアログ

複数のファイルを選択できますので、「Ctrlキーを押しながらクリック」や「Shiftキーを押しながらクリックによる範囲選択」、「Ctrlキーを押しながらAキーによる全選択」などを使って、対象のエクセルを選択してください。

上記の操作により、マクロを実行したエクセルの1番目のシート移行に選択したエクセルのシートがすべて追加されます。

このマクロでは元となったエクセルは削除せずに残してあります。必要があれば別の場所に移してください。必要なければ手動で削除する、またはマクロに削除するコードを追加してください。

まとめ

本記事「【エクセル】複数のエクセルファイル(ブック)内のシートを一つにまとめる方法」はいかがでしたか。

ここでは以下の項目について解説してきました。

  • 複数のエクセルファイル内のシートを1つにまとめるとは
  • 手動で1つ1つコピーしてまとめる方法
  • マクロを使ってシートをまとめる方法

本記事で紹介したコードはコピペして利用、または一部編集してご自分に合ったマクロにして使ってください。