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

ExcelVBA-1行ごとにCSV生成-アイキャッチ ExcelVBA

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

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

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

以下のExcelVBAを実行すると、エクセルの行数分CSVを作成します。


Sub 行ごとに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処理を自動化まとめ
 

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

 

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