【ExcelVBA】ExcelシートデータをCSVファイルに出力する方法
ExcelVBAでExcelシートのデータをCSVファイルに出力したい方向けに書いています。
本記事の内容
ExcelVBA(マクロ)で作成したデータをデータ連携で他のシステムへCSVアップロードすることはありませんか?
ExcelVBAでExcelシートのデータをCSVファイルに出力する方法を紹介します。
ExcelVBAでExcelシートのデータをCSVファイルに出力するプログラム
以下がExcelVBAでExcelシートのデータをCSVファイルに出力するプログラムです。
- '*****************************************
- '* CSVファイル出力
- '*****************************************
- Sub CSV_OUT()
- Dim SaveDir As String 'CSVデータフォルダパス
- Dim csvFile As String 'CSVファイルパス
- Dim fileNumber As Integer 'ファイル番号
- Dim lastCol As Integer '最大出力データ列
- Dim col As Integer '列
- Dim i As Long '行数
-
- '保存先フォルダ
- SaveDir = ThisWorkbook.Path & "\CSVデータ"
-
- 'フォルダがなければ作成する
- If Dir(SaveDir, vbDirectory) = "" Then
- MkDir SaveDir
- End If
-
- 'ファイル作成
- csvFile = SaveDir & "\" & Format(Now, "yyyymmddhhnnss") & "_CSVデータ.csv"
-
- '空いているファイル番号を取得
- fileNumber = FreeFile
- 'ファイルをOutputモードで開く
- Open csvFile For Output As #fileNumber
-
- With ThisWorkbook.Worksheets("Sheet1")
-
- 'データ出力最大列取得
- lastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
-
- For i = 1 To .Cells(Rows.Count, 2).End(xlUp).Row 'シートを上から処理
-
- For col = 1 To lastCol - 1
-
- '要素をカンマで結合して出力
- Print #fileNumber, .Cells(i, col) & ",";
-
- Next
- '要素の最大列を結合して出力
- Print #fileNumber, .Cells(i, col)
-
- Next
-
- End With
-
- 'ファイルを保存して閉じる
- Close fileNumber
-
- End Sub
13行目:CSVデータ保存先 ExcelVBAファイルの同階層にCSVデータフォルダを作成してそこに保存します
21行目:CSVデータファイルパス CSVファイル名はこちらで設定してください
28行目:出力元シート設定 出力元シートはこちらで設定してください
実装例
以下が実装のインプットとアウトプットのデータです。
インプットExcel
アウトプットCSV
まとめ
ExcelVBAでExcelシートのデータをCSVファイルに出力する方法を紹介しました。
他システムへデータ連携するとき等に役に立つと思います。
最後までご覧いただき、ありがとうございました。
「【ExcelVBA】Excelシートデータを別Excelファイルに出力する方法」
「【ExcelVBA】ExcelシートをPDF出力する方法(ExportAsFixedFormat)」
も紹介していますので、もしよろしければこちらも御覧ください。


最近のコメント