webサイトなんかを運営していて、ユーザデータなんかをexportするとcsv形式で保存されてしまう。
これを1つのブックにまとめる方法を紹介です
※ブックは1つですが、シートは分割(ファイル数に応じて)します。

ファイル構造

1)大ファイルの中に、「エクセル」と「ファイル(という名前のフォルダ)」を用意してください

2)CSVたちは「ファイル」というフォルダの中に入れてください

コード

Excel(VBA)に下記コードを追記してください

Sub TEST1()

    Dim myFile As String
    Dim myPath As String
    Dim newWB As Workbook
    
    ' CSVファイルが格納されているフォルダを指定
    myPath = ThisWorkbook.Path & "\ファイル\"
    
    ' 最初のCSVファイルを取得
    myFile = Dir(myPath & "*.csv")
    
    Do Until myFile = ""
        ' CSVファイルを開く
        Set newWB = Workbooks.Open(myPath & myFile)
        
        ' シートをコピーして、このブックの先頭に挿入
        newWB.Sheets(1).Copy Before:=ThisWorkbook.Sheets(1)
        
        ' 開いたCSVファイルを閉じる
        newWB.Close False
        
        ' 次のCSVファイルを取得
        myFile = Dir()
    Loop

End Sub

    コメントを残す