エクセルマクロで、複数ブックを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つのエクセルファイルに貼り付けます。
この記事がお役に立ちますと幸いです。
【エクセルマクロ】シートの追加・削除を自動化:超便利12選
...
「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載
リンク