- 公開日:
複数のエクセルファイルを1つのブックにまとめる方法
エクセルを使ってデータを管理する際、複数のファイルのデータを1つにまとめたくなることがあるかと思います。
特に複数のファイルを行ったり来たりする作業が多い場合、1つのブックにまとめることで作業効率が格段に向上します。
この記事では、複数のエクセルファイルを1つのブックにまとめる2つの方法について詳しく解説していきます。
複数のエクセルファイルを1つのブックにまとめる方法
データの取得機能を使用する
エクセルの「データの取得」機能を使用することで、複数のファイルが格納されているフォルダを参照して、データをひとまとめにできます。
大量にファイルがある場合は若干表示が崩れてしまいますが、ファイル内のデータを1つずつコピー&ペーストするよりも遥かに効率よくまとめられるため、大変便利です。
詳しい方法は、以下の通りです。
ここでは例として、上記3つの売上管理表をまとめてみます。
新規でエクセルのファイルを開き、①「データ」タブ、②「データの取得」、③「ファイルから」、④「フォルダーから」の順に選択します。
「参照」ダイアログボックスが表示されます。
①まとめたいファイルが格納されているフォルダー(例:売上管理表)を選択し、②「開く」ボタンを押します。
まとめたいファイルが表示されているか確認し、①「結合」、②「データの結合と変換」の順に選択します。
「ファイルの結合」ダイアログボックスが表示されます。
①まとめたいデータを含むシート(例:Sheet1)を選択し、②「OK」ボタンを押します。
結合後のデータが表示されます。この画面で、余分な行や列を削除することもできます。
問題なければ、「閉じて読み込む」を選択します。
読み込んだ複数のファイルが結合され、1つのデータとして表示されました。
データを取得機能を使って結合すると、テーブル形式でデータがまとめられます。
VBA(マクロ)を使用する
エクセルのVBA(マクロ)を活用すれば、簡単な操作で複数のファイルを綺麗にまとめることができます。
VBAを使うには開発タブを表示する必要がありますので、以下の記事を参考に設定を行ってください。たった3ステップで表示できます。
VBAといっても難しい操作は一切ありません。以下で掲載しているコードを貼り付けるだけで完了します。
詳しい方法は、以下の通りです。
①「開発」タブ、②「Visual Basic」の順に選択します。
①「挿入」タブ、②「標準モジュール」の順に選択します。
①モジュールに、以下のコードを貼り付けます。
Sub 複数ファイルまとめ()
With CreateObject("WScript.Shell")
CurrentDirectory = ThisWorkbook.Path
End With
Dim Folder
'ファイルを開くダイアログボックスを表示する
Folder = Application.GetOpenFilename("Excel,*.xlsx", MultiSelect:=True)
If IsArray(Folder) = False Then Exit Sub
For i = 1 To UBound(Folder)
Workbooks.Open Folder(i)
Dim OutputFile
Set OutputFile = ThisWorkbook.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp)
With ActiveWorkbook.Sheets(1).Range("A1").CurrentRegion
.Resize(.Rows.Count - 1).Offset(1, 0).Copy OutputFile.Offset(1, 1)
OutputFile.Resize(.Rows.Count - 1).Offset(1, 0) = ActiveWorkbook.Name
End With
'ブックを閉じる
ActiveWorkbook.Close False
Next
End Sub
②貼り付けられたら、「Sub/ユーザーフォームの実行」を選択して、マクロを実行します。
このコードは、「ファイルを開く」というダイアログボックスを表示させ、選択したファイル内のデータを現在開いているブックにまとめるというものです。
「Application.GetOpenFilename」でダイアログボックスを表示でき、「MultiSelect:=True」で複数ファイルの選択が可能になります。
マクロを実行すると、「ファイルを開く」ダイアログボックスが表示されます。
①まとめたいファイル(例:4月分売上.xlsx/5月分売上.xlsx/6月分売上.xlsx)を選択し、②「開く」ボタンを押します。
ファイルの読み込みが開始され、複数のデータを1つのブックにまとめることができました。