記事内に広告が含まれています。

【Excel VBA】複数のExcelファイルを1つに統合する方法

Excel・VBA

複数のExcelファイルに分かれているデータを、1つのファイルにまとめたいことはありませんか?

今回は、Excel VBAを使って、3つのExcelファイルの売上データを1つに統合する方法を紹介します。

完成したExcelファイルや自動化の実例については、以下の記事で紹介しています。

投稿者
もも

40代・大阪の女性フリーランスSE。
業務効率化・自動化の仕事をしています。
最近はUiPathを中心に、Pythonや生成AIにも挑戦中。
効率化の事例や学んだことなど発信しています。

ももをフォローする

今回使用するExcelファイル

A支店・B支店・C支店の3つのExcelファイルを用意します。

統合前のExcelファイル

A支店.xlsx

日付売上金額
2026/11/1100,000

B支店.xlsx

日付売上金額
2026/11/190,000

C支店.xlsx

日付売上金額
2026/11/1150,000

どのファイルも「日付」「売上金額」の2列だけのシンプルな構成です。

今回は、この3つのファイルを1つにまとめます。

フォルダの準備

今回使用するファイルを、次のように配置します。

Excel統合
├─ 統合マクロ.xlsm
└─ 入力
   ├─ A支店.xlsx
   ├─ B支店.xlsx
   └─ C支店.xlsx

「統合マクロ.xlsm」には、あらかじめ「統合シート」という名前のシートを作成しておきます。

「統合シート」の1行目には、「日付」「支店名」「売上金額」の見出しを設定し、2行目以降は空欄にしておきます。

VBAコード

以下が、今回使用したコードです。

「統合マクロ.xlsm」の標準モジュールに記述します。

Sub ファイル統合()

    Dim folderPath As String
    Dim fso As Object
    Dim folder As Object
    Dim outputRow As Long
    Dim file As Object
    Dim inputBook As Workbook
    Dim inputSheet As Worksheet

    '入力フォルダ
    folderPath = "ここは入力フォルダのパスを書く"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(folderPath)

    '出力開始行
    outputRow = 2

    '入力フォルダ内のファイルを順番に処理
    For Each file In folder.Files

        '入力ファイルを開く
        Set inputBook = Workbooks.Open(file.Path, ReadOnly:=True)
        Set inputSheet = inputBook.Worksheets(1)

        '日付・支店名・売上金額を出力
        With ThisWorkbook.Worksheets("統合シート")
            .Cells(outputRow, 1).Value = inputSheet.Range("A2").Value '日付
            .Cells(outputRow, 2).Value = fso.GetBaseName(file.Name) '支店名
            .Cells(outputRow, 3).Value = inputSheet.Range("B2").Value '売上金額
        End With

        '入力ファイルを閉じる
        inputBook.Close SaveChanges:=False

        '次の出力行へ
        outputRow = outputRow + 1

    Next file

    'マクロファイル自身を保存
    ThisWorkbook.Save

End Sub

今回のコードでは、ファイル名から拡張子を除いた文字列を支店名として利用しています。

例えば、「A支店.xlsx」であれば「A支店」が設定されます。

ファイル名をそのまま支店名として利用できるので、元のExcelファイルを変更せずに統合できますね!

実行結果

マクロを実行すると、「統合マクロ.xlsm」の「統合シート」に、3支店の売上データが書き込まれます。

日付支店名売上金額
2026/11/1A支店100,000
2026/11/1B支店90,000
2026/11/1C支店150,000

3つのExcelファイルから売上データを取得し、1つのシートにまとめることができました。

まとめ

今回は、Excel VBAを使って、複数のExcelファイルの売上データを1つに統合する方法を紹介しました。

FileSystemObject を使ってフォルダ内のファイルを順番に取得し、必要なデータを読み込むことで、手作業でのコピー&ペーストを自動化できます。