ブログときどきオトン

飽くなき好奇心で発信し続けるブログ

Google Chrome Bookmark Managerのすゝめ
パソコンを軽くして最速にする方法
ゲームを最高のパフォーマンスで遊ぶためのメモリ解放
チプカシ(チープCASIO)を買ってみた
マツキヨのエナジードリンクが最強らしいので飲んでみた
オピネルを買ったのでオイル漬けをやってみた
メガネのズレ落ち防止シリコンフックが良かった

スポンサーリンク

仕事で使える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-2018 ブログときどきオトン