エクセルマクロで、行ごとに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処理を自動化:超便利10選
...
「プログラマーの本気がExcelを覚醒させる 超絶ExcelVBA」
ExcelVBAでワンランクアップできる書籍
具体的で応用が利く技をたくさん掲載
リンク