フォルダの中にある複数のエクセルファイルを開いて
一つのシートに統合してリストを作るマクロ
コード
Sub データ統合() Dim Path As String Dim FileName As String Dim DataNumber As Long Dim RowsCount As Long Dim WS As Worksheet 'マクロエクセルが保存されているフォルダのパスを取得 Path = ThisWorkbook.Path & "\" 'フォルダの中で拡張子がxlsxのファイルを取得 FileName = Dir(Path & "*.xlsx") 'アクティブシートを統合先に設定する Set WS = ActiveSheet '繰り返し処理 Do While FileName <> "" 'フォルダ内のエクセルを開く Workbooks.Open Path & FileName '開いた統合元のエクセルのデータ数を取得 DataNumber = Range("A1").CurrentRegion.Rows.Count - 1 '統合先の行数を取得 RowsCount = WS.Range("A1").CurrentRegion.Rows.Count + 1 '開いた統合元のエクセルシートをコピーして統合先に貼り付け '7列目までコピーする場合 Range("A2").Resize(DataNumber, 7).Copy Destination:=WS.Cells(RowsCount, 1) 'ファイルを閉じる ActiveWorkbook.Close 'ファイルを再取得 FileName = Dir '繰り返し Loop End Sub
下準備
上記のコードは7列目までコピーする場合。列番号は適宜修正すること。
マクロが入ってるフォルダと同じフォルダに統合したいファイルを置く。
アクティブシートに統合データが集まるので、一番上の行にタイトル行を入れておくとよい。
意図した順番に並べたい場合は、統合したいファイルの名前の先頭にい数字を入れて任意の並び順にしておく。
そうするとファイルの並び順どおりに統合されるはず。