Excelシートにある表データをCSV形式で出力する方法について説明します。
エクセルシートのデータをCSV形式で出力する
エクセルシートにはサンプルで↓のような表を作成しておきました。
マクロ実行するとこの表データをCSV形式で出力し、マクロファイルと同じ場所に出力します。
表のデータは可変にできるよう、最終行と最終列を取得して表全体を出力対象にします。

サンプルマクロで実行している内容
①出力するファイルのパスとファイル名を指定
⇒カレントフォルダ+output.csvをセット
②ファイルナンバーを割り当て
③最終行の取得
④最終列の取得
⑤CSVファイルを作成・開く
⑥1行目から最終列まで繰り返し
⑦ >1列目から最終列まで繰り返し(行繰り返し内で列の繰り返し)
⑧ >最終列でなければセルの値とカンマを出力
>最終列ならば、セルの値と改行コードを出力
⑨ファイルを閉じる
サンプルマクロコード
Sub sample()
Dim csvFile As String
Dim row As Integer
Dim cl As Integer
Dim FileNumber As Integer
Dim LastRow As Integer
Dim LastColumn As Integer
Dim ws As Worksheet
'アクティブシートを変数にセット
Set ws = ThisWorkbook.ActiveSheet
'出力するファイルのパスとファイル名を指定…⓵
csvFile = ActiveWorkbook.Path & "\output.csv"
'ファイルナンバーを割り当て…⓶
FileNumber = FreeFile
'最終行の取得…⓷
LastRow = ws.Cells(Rows.Count, 1).End(xlUp).row
'最終列の取得…⓸
LastColumn = ws.Cells(1, Columns.Count).End(xlToLeft).Column
'CSVファイルを作成・開く…⓹
Open csvFile For Output As #FileNumber
'1行目から最終列まで繰り返し…⓺
For row = 1 To LastRow
’1列目から最終列まで繰り返し…⓻
For cl = 1 To LastColumn
If cl <> LastColumn Then
'最終列でなければセルの値とカンマを出力…⓼
Print #FileNumber, ws.Cells(row, cl).Value & ",";
Else
'最終列ならば、セルの値と改行コード出力…⓼
Print #FileNumber, ws.Cells(row, cl).Value & vbCr;
End If
Next
Next
'ファイルを閉じる…⓽
Close #FileNumber
End Sub
サンプルマクロの実行結果
マクロを実行するとoutput.csvが作成されます。

作成されたCSVファイルをExcelで開いた状態

作成されたCSVファイルをメモ帳で開いた状態

※コードのコピー利用について
・コードのコピーは自由におこなっていただけます。
・気を付けて作成はしていますがコードには誤りがある可能性があります。
・自身の環境で動作確認をしていますが、すべての方の環境で同様に動くことは保証できません。
・データの破損等の責任は負いかねますのでご自身の責任のもとお使いください。
・記事の内容は適宜変更することがありますのでご了承ください。