【エクセルマクロ】複数ブックを1つにまとめる:コピペで使えるコード

vba-複数ファイルをひとつにまとめる-アイキャッチ ExcelVBA

エクセルマクロで、複数ブックを1つのブックにまとめるVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

複数ブックを1つにまとめる

以下のExcelVBAを実行すると、複数ブックのデータを1つのファイルに抽出します。


Sub 複数のファイルを1つのシートにまとめる()

Dim path, fso, file, files
Dim Wb As Workbook
Dim LastRow_Wb As Long

    'マクロファイルを変数格納
    Set Wb = ActiveWorkbook

    '読み取るファイル格納先
    path = "C:\Users\admin\Desktop\テスト"

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set files = fso.GetFolder(path).files

    '貼り付け開始位置
    LastRow_Wb = 1

    Application.ScreenUpdating = False

        'フォルダ内の全ファイルについて処理
        For Each file In files

            'エクセルファイルだったら処理を進める
            If fso.GetExtensionName(file) = "xlsx" Then

                'エクセルファイルを開く
                Workbooks.Open (file)

                'セルA1からD列の最終行までコピー
                Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 4)).Copy

                'データを値貼り付け
                Wb.ActiveSheet.Cells(LastRow_Wb, 1).PasteSpecial Paste:= _
                xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

                '最終行取得
                LastRow_Wb = Wb.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1

                '開いたエクセルファイルを保存せず閉じる
                Application.DisplayAlerts = False
                ActiveWindow.Close
                Application.DisplayAlerts = True

            End If
        Next file

    Application.ScreenUpdating = True
    
    MsgBox "完了"

End Sub

 

マクロ実行前

上記のマクロコードを組んだエクセルファイルを準備します。


 

[path = “C:\Users\admin\Desktop\テスト”] に、エクセルファイルを格納します。


 

各エクセルファイルのフォーマットは統一されています。

抽出するのは、セルA1からD列の最終行までの範囲です。


 

マクロ実行後

フォルダ内にある全てのExcelファイルからデータを抜き出して、

1つのエクセルファイルに貼り付けます。


 
 
この記事がお役に立ちますと幸いです。
 

【エクセルマクロ】ワークシート処理を自動化する:超便利39選
...

 

「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載