VBA 複数CSVの特定列をエクセルにまとめる(動画あり)

ExcelVBA-複数CSVの特定列をエクセルにまとめる-アイキャッチ ExcelVBA

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

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

複数CSVの特定列をエクセルにまとめる

以下のExcelVBAを実行すると、CSVから特定の列だけ抽出しエクセルに転記します。


Sub フォルダ内のすべてのCSV指定列コピペ変換()

Dim path, fso, file, files
Dim Wb As Workbook
Dim LastRow As Long
Dim LastRow_Wb As Long
    
    'エクセルファイルを変数格納
    Set Wb = ActiveWorkbook
    
    'CSV格納フォルダ
    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
        
            'CSVファイルだったら処理を進める
            If fso.GetExtensionName(file) = "csv" Then
            
                'CSVファイルを開く
                Workbooks.Open (file)
                
                '最終行取得
                LastRow = Cells(Rows.Count, 1).End(xlUp).Row
                
                '指定範囲コピペ(B列~D列)
                Range(Cells(1, 2), Cells(LastRow, 4)).Copy Wb.ActiveSheet.Cells(LastRow_Wb, 1)
                
                '最終行取得
                LastRow_Wb = Wb.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
    
                'CSVファイルを保存せず閉じる
                ActiveWindow.Close
            
            End If
        Next file
    
    Application.ScreenUpdating = True

End Sub

マクロ実行前

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


 

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


 

CSVファイルはA列~D列にデータが入力されています。
データ件数はファイルによって異なります。


 

マクロ実行後

フォルダ内にある全てのCSVファイルからB~D列を抜き出して、

1つのエクセルファイルにコピーします。


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

・【エクセルマクロ】CSV処理を自動化まとめ
 

【エクセルマクロ】CSV処理を自動化:超便利10選
...

 

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