CSV ファイルに出力する
Excel VBA を利用して CSV ファイルに出力する方法をご説明します。
基本的な手順
変数の宣言: 出力するデータやファイルパスなどを格納するための変数を宣言します。
ファイルを開く: Open ステートメントを使って、CSV ファイルを書き込みモードで開きます。
データを書き込む: Print # ステートメントを使って、データを一行ずつ CSV ファイルに書き込みます。
ファイルを閉じる: Close ステートメントを使って、CSV ファイルを閉じます。
サンプルコード
VB.Net
Sub CSV出力()
Dim ws As Worksheet
Dim lastRow As Long, lastCol As Long
Dim filename As String
Dim i As Long, j As Long
' 出力するシートを設定
Set ws = ThisWorkbook.Sheets("Sheet1") ' 出力したいシート名を指定
' 最終行と最終列を取得
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
' ファイル名を設定
filename = "C:\temp\output.csv" ' 出力先のパスとファイル名を指定
' CSVファイルを開く
Open filename For Output As #1
' データを書き込む
For i = 1 To lastRow
For j = 1 To lastCol
Print #1, ws.Cells(i, j),
Next j
Print #1, "" ' 改行
Next i
' ファイルを閉じる
Close #1
MsgBox "CSVファイルが出力されました。"
End Sub
コードは注意してご使用ください。
コード解説
ws: 出力するワークシートを指定します。
lastRow, lastCol: データの最終行と最終列を取得します。
filename: 出力する CSV ファイルのパスとファイル名を指定します。
i, j: ループ変数です。
Open filename For Output As #1: filename で指定したファイルを書き込みモードで開き、ファイル番号 1 に割り当てます。
Print #1, ws.Cells(i, j),: ファイル番号 1 に、セル ws.Cells(i, j) の値を出力します。カンマ (,) で区切ることで、CSV 形式になります。
Print #1, "": 空行を出力して、次の行に移ります。
注意点
文字コード: CSV ファイルの文字コードは、システムのロケールや Excel の設定によって異なります。Shift-JIS や UTF-8 など、適切な文字コードで保存するようにしてください。
区切り文字: CSV ファイルの区切り文字は、通常はカンマ (,) です。他の文字を使用する場合は、Print ステートメントで出力する際に、その文字で区切ります。
改行コード: 改行コードは、システムによって異なります。Windows では CRLF、Unix/Linux では LF が一般的です。
エラー処理: ファイルの開閉や書き込み時にエラーが発生する可能性があります。エラー処理を追加することで、プログラムの安定性を高めることができます。
応用
特定範囲の出力: 出力する範囲を指定することで、一部のデータだけを CSV ファイルに出力できます。
ヘッダーの出力: 1行目にカラム名を出力することで、CSV ファイルの見やすさを向上できます。
書式設定: 数値の表示形式などを調整することで、CSV ファイルのフォーマットをカスタマイズできます。
その他
アドイン: Excel のアドインを利用することで、より簡単に CSV 出力を行うことができます。
他のプログラミング言語: VBA 以外にも、Python や C# など、さまざまなプログラミング言語で CSV 出力を実現できます。
まとめ
Excel VBA を利用して CSV ファイルに出力する方法を解説しました。このサンプルコードを参考に、ご自身の環境に合わせてカスタマイズしてください。
この記事が気に入ったらサポートをしてみませんか?