【エクセルマクロ】一行ごとに1つのCSVファイル生成:自動化で時短

ExcelVBA-1行ごとにCSV生成-アイキャッチ エクセルマクロで効率化する

エクセルマクロで、一行ごとに1つのCSVファイル生成するVBAコードをご紹介します。

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

一行ごとに1つのCSVファイル生成

以下のExcelVBAを実行すると、エクセルからCSVを大量作成します。


Sub 一行ごとに1つのCSVファイルを作成()

Dim LastRow As Long
Dim i As Long
Dim j As Long
Dim TargetName As String
Dim MyList() As Variant

    '最終行
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row

    'データを配列格納
    MyList = Range(Cells(1, 1), Cells(LastRow, 4))
    
    Application.ScreenUpdating = False
    
        '2行目から最終行までループ
        For i = 2 To LastRow
            
            '新規作成
            Workbooks.Add
            
            'ファイル名は複数セルを結合「名前」&「都道府県」
            TargetName = MyList(i, 2) & "_" & MyList(i, 4)
            
            '値書き込み
            For j = 1 To 4
                Cells(1, j) = MyList(i, j)
            Next j
            
             '名前をつけてCSV保存
            Application.DisplayAlerts = False
                ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & TargetName, _
                 FileFormat:=xlCSV, Local:=True
                 ActiveWorkbook.Close True
            Application.DisplayAlerts = True
            
        Next i
    
    Application.ScreenUpdating = True

End Sub

 

マクロ実行前

エクセルファイル内にデータ一覧があります。


 

マクロ実行後

1行ごとに1つのCSVファイルを一括作成します。


 

自動作成したCSVファイルは、各ファイルに1行のデータが入っている状態です。


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

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

>>インターネット・アカデミーで学習コース一覧を見る