【エクセル】複数のエクセルファイル(ブック)内のシートを一つにまとめる方法
2023.07.04 /
本記事ではMicrosoftのエクセルにおける、複数のエクセルファイル(ブック)内のシートを一つにまとめる方法について解説していきます。
仕事でエクセルを使っていると、ファイル数が膨大な量になったエクセル群を1つのエクセルにまとめたい場面があります。
手動で作業すると多くの時間がかかってしまいますが、マクロを使うことであっという間に複数のエクセル内のシートを1つにまとめられます。
本記事を通して、複数のエクセルファイル内のシートを一つにまとめる方法について覚えてください。
複数のブック内のシートを一つにまとめる
複数のブック内のシートを一つにまとめる方法は以下の通りです。
- 手動で1つ1つコピーしてまとめる方法
- マクロを使って複数のシートをまとめる方法
現時点ではエクセルの既存の機能で複数のエクセル内のシートを簡単に1つにまとめることはできません。手動で時間をかけてまとめる、またはマクロを作成してシートをまとめるしか方法がありません。
それぞれの方法について次項より詳しく解説していきます。
手動で1つ1つコピーしてまとめる方法
手動で1つ1つのエクセルをコピーして1つにまとめる方法は以下の通りです。
- シートのタブを右クリックし、表示されたメニューから「移動またはコピー」を選択する
- 表示された画面から「移動先のブック」「挿入先」を選択し、「コピーを作成する」にチェックをしたら「OK」をクリック
上記の操作により「移動先のブック」で選んだブックにシートのコピーが挿入されます。これをまとめたいエクセルのシート分同じ操作をすることで、一つのブックにシートをまとめることができます。
マクロを使って複数のシートをまとめる方法
ここからはマクロを使った複数のエクセル内のシートをまとめる方法を解説します。
マクロとは
マクロとはコンピューターやアプリケーションの操作を自動化する機能です。マクロはエクセルで使う人の割合が非常に高いですが、エクセル以外でも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番目のシート移行に選択したエクセルのシートがすべて追加されます。
このマクロでは元となったエクセルは削除せずに残してあります。必要があれば別の場所に移してください。必要なければ手動で削除する、またはマクロに削除するコードを追加してください。
まとめ
本記事「【エクセル】複数のエクセルファイル(ブック)内のシートを一つにまとめる方法」はいかがでしたか。
本記事で紹介したコードはコピペして利用、または一部編集してご自分に合ったマクロにして使ってください。