こんにちは、ヒガシです。
エクセルで作成したデータを他のツールに読み込ませるためにcsvファイル化したい!
なんてシーンはよくありますよね。
ということでこのページでは、以下の画像のように既存のエクセルファイル上のデータを
こんな感じでcsvファイルに出力する方法をご紹介していきます。
VBA上でcsv化する範囲を自由に指定することができますので、用途に応じてぜひご活用ください。
それではさっそくやっていきましょう!
指定範囲をcsv出力するVBAコード
早速ですが、いかがそのサンプルコードです。
Sub make_csv()
Dim csv_region As Variant
Dim num_row As Integer
Dim num_col As Integer
csv_region = Range("A1:K9")
num_row = UBound(csv_region, 1)
num_col = UBound(csv_region, 2)
Open ThisWorkbook.Path & "\output.csv" For Output As #1
For i = 1 To num_row
For j = 1 To num_col - 1
Print #1, csv_region(i, j) & ",";
Next
Print #1, csv_region(i, j)
Next
Close #1
End Sub
5行目でcsv化する範囲を指定し、その範囲をひたすらcsvファイルに書き込んでいくというシンプルなものです。
サンプルコードの実行結果
それでは実際に実行してみましょう。
使用するサンプルデータは冒頭に紹介した通り以下を使用します。
まずはcsv_region = Range(“A1:K9”)でやってみます。
問題なく指定範囲が出力されています。
次はcsv_region = Range(“B2:D8”)でやってみます。
こちらも問題なく出力できました。
おわりに
というわけで今回はエクセルシート上の指定した範囲をcsvファイルとして出力する方法をご紹介しました。
このブログでは、このような業務自動化スキルを多数紹介しています。
ぜひ他のページもご覧ください。
それではまた!
コメント