【エクセルVBA】指定した範囲をcsvファイルとして出力する方法!

こんにちは、ヒガシです。

エクセルで作成したデータを他のツールに読み込ませるためにcsvファイル化したい!

なんてシーンはよくありますよね。

 

ということでこのページでは、以下の画像のように既存のエクセルファイル上のデータを

エクセル上のサンプルデータ

こんな感じで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出力した例

 

次はcsv_region = Range(“B2:D8”)でやってみます。

csv出力した例

こちらも問題なく出力できました。

 

スポンサーリンク

おわりに

というわけで今回はエクセルシート上の指定した範囲をcsvファイルとして出力する方法をご紹介しました。

 

このブログでは、このような業務自動化スキルを多数紹介しています。

ぜひ他のページもご覧ください。

過去記事一覧

 

それではまた!

コメント

タイトルとURLをコピーしました