ブログときどきオトン

ブログとオトンの成長の記録

ブログとオトンの成長の記録

スポンサー

仕事で使えるExcel活用術「CSVを書き出すVBA」

こんにちはサラリーマンブロガーのこーんです

仕事で使えるExcelシリーズになります。

今回はシートの内容をCSVに書き出す方法です。

CSV書き出しのソース

以下は注文データをCSVに吐き出すことを想定したものです。

Sub CSV出力()
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(1)

Dim csvFile As String
csvFile = ActiveWorkbook.Path & "\注文.csv"

Open csvFile For Output As #1

Dim i As Long, j As Long
i = 2 '2行目から書き出す'

Do While ws.Cells(i, 5).Value <> "" 'E 列が空白になるまで繰り返す

    j = 5 '書き出し範囲の先頭'
    Do

        Print #1, ws.Cells(i, j).Value & ",";
        j = j + 1
        
        If j > 26 Then Exit Do '26列までを範囲とする'

    Loop
    
    Print #1, ws.Cells(i, j).Value & vbCr;
    i = i + 1
Loop

Close #1

MsgBox "csvに書き出しました"
End Sub

以下は解説と変更パラメータになります。

i = 2 '2行目から書き出す'

何行目から書き出すかの設定。この場合ヘッダーを除きたかったため2行目から書き出すことにしたもの。

Do While ws.Cells(i, 5).Value <> "" 'E 列が空白になるまで繰り返す

シートのデータを上から下まで順番に書き出します。書き出すデータが無くなると終了。

普通は1列目で良いですが関数などで埋めている場合は別な列を番号で指定してあげます。

j = 5 '書き出し範囲の先頭'
If j > 26 Then Exit Do '26列までを範囲とする'

CSVに書き出す範囲を列で指定します。この場合は5列目から26列目まで。

いつもの流し込み用のデータ作成などルーチンワーク的な仕事を自動化するのに役立ちます。


〈関連記事〉
www.tokidokioton.com

スポンサードリンク

このブログについて  広告に関する免責事項 アクセス解析について RSS

© 2017-2023 ブログときどきオトン