【Excelマクロ】フォルダ内の全ファイルからデータ取得、一覧表にする【VBA】【エクセル】

excelvba 公務員
この記事は約2分で読めます。

同じ形式の複数のExcelファイルが入ったフォルダから一覧表を作成したいとき。このエクセルマクロで一括集計できます!汎用性もあり、便利です!マクロのコードを紹介します。

1.集計したいファイル郡と同じフォルダ内に「マクロ用のExcelファイル」を作成します。

2.次のマクロを登録して、実行します

Sub sample()

Dim dstSheet As Worksheet
Set dstSheet = ThisWorkbook.Worksheets(1)

Path = Application.ThisWorkbook.Path & “\”
Dim buf As String
  buf = Dir(Path & “*.xlsx”) ‘拡張子にxlsを指定すると旧フォーマット

Dim i As Long
  i = 1  ’ 一覧表に出力する行の初期値です。2行目からの場合は1を指定
Do While buf <> “”
i = i + 1
Dim srcBook As Workbook
Set srcBook = Workbooks.Open(Path + buf)
Dim srcSheet As Worksheet
Set srcSheet = srcBook.Worksheets(1)
   ‘【カスタマイズ部分】↓一覧表にしたいセルを指定(行,列)
dstSheet.Cells(i, 1).Value = srcSheet.Cells(1, 1)
   ‘【カスタマイズ部分】↑ここまで
srcBook.Close False
buf = Dir()
Loop

End Sub

https://qiita.com/takahiro_itazuri/items/08754db91c6ab72deb03
※こちらを参考に、コメントの部分を変更/追記しました

上記は、集計対象エクセルのセル「A1」を次々に取得していますが、
カスタマイズ部分を変更、追加すれば、指定したセルを集計できます。

(例)カスタマイズ例:セル「B2」「C2」も次々に取得
  dstSheet.Cells(i, 2).Value = srcSheet.Cells(2, 2)
  dstSheet.Cells(i, 3).Value = srcSheet.Cells(3, 2)

事務仕事で何かと使う機会が多いと思うのでおすすめです。