エクセル・仕事効率化 PR

エクセルVBAでCSVファイルを簡単に書き出す方法

記事内に商品プロモーションを含む場合があります

CSVファイルとは、Comma Separated Values ファイル(コンマで区切られた値)の略で、異なるシステム間でデータをやり取りするときに多く使われます。

エクセルからCSVファイルの作成は、1種類ならそんなに面倒くさくもないですけど、枚数が多くなると、意外と面倒ですよね。

エクセルVBAでCSVファイルを書き出す方法って意外と簡単です。ただ、意外とどんなシーンでも応用が効くCSVの書き方って見つからなかったんですよね。

そこで、エクセルデータからCSVファイルを書き出すコードを書いてみました。

 

下記では、10行8列の場合に、data.CSVという
CSVファイルを書き出します。
もし行数や列数、ファイル名を変更したい場合でも
簡単に変更できます。

Sub writeCSV()Dim csvFile As String

‘ファイル名変更の際は、”\data.csv”のdataの部分を
‘任意の文字列(”\xxx.csv”)に変更して下さい。
csvFile = ActiveWorkbook.Path & “\data.csv”

Open csvFile For Output As #1

Dim i As Long
Dim j As Long
Dim k As Long
Dim l As Long

‘行数を変更する場合は、”K=3″などに変更して下さい。
k = 10

‘列数を変更する場合は、For j = 1 to 7の
‘7を任意の数字に変更して下さい。
For i = 1 To k

For j = 1 To 7
Print #1, Worksheets(“sheet1”).Cells(i, j).Value & “,”;
Next j

Print #1, Worksheets(“sheet1”).Cells(i, j).Value & vbCrLf;
Next i

Close #1

MsgBox “data.csvに書き出しました”

End Sub

Windowsの場合は上記で動きますが、
Macの場合は、改行を示すvbCrLf;をvbCr;に
変更しないと改行ができませんのでご注意下さい。

ワークすることを確認したエクセルもここに置いておきます。
https://www.dropbox.com/sh/6p8ltj4s3klfuhv/AACI0H5Yd04QF5LNzUdJP0u8a?dl=0

ABOUT ME
カフェインレス
いま日本では、残業するのがアタリマエ。仕事はしんどくて当然。みたいな風潮がありませんか? ぼくには娘がいるのですが、将来、社会に対して暗い気持ちになってしまったらイヤだな、と。 定時で帰るのを当然のこととするために、「本質的な技術」や「小手先のテクニック」を紹介しております。 仕事に慣れたところで、10-20%程度しか仕事は早くなりません。エクセルを学んだり、考え方を変えると90%以上の業務時間が短縮ができる事があります。 仕事って人生で一番時間を使うことなので、その仕事のうちの「作業」だけでも自動化できれば、仕事のクオリティは段違いになります。 あなたの仕事のステップを一段階上げるために。また、毎日にゆとりをもたらすための一助になりたいと思っています。