【ExcelVBA】ExcelシートデータをCSVファイルに出力する方法

4月 14, 2023

※当ブログではリンク先にプロモーションを含みます。

ExcelVBAでExcelシートのデータをCSVファイルに出力したい方向けに書いています。

 

本記事の内容

・ExcelVBAでExcelシートのデータをCSVファイルに出力する方法

ExcelVBA(マクロ)で作成したデータをデータ連携で他のシステムへCSVアップロードすることはありませんか?

ExcelVBAでExcelシートのデータをCSVファイルに出力する方法を紹介します。

 

ExcelVBAでExcelシートのデータをCSVファイルに出力するプログラム

以下がExcelVBAでExcelシートのデータをCSVファイルに出力するプログラムです。

  1. '*****************************************
  2. '* CSVファイル出力
  3. '*****************************************
  4. Sub CSV_OUT()
  5.     Dim SaveDir As String 'CSVデータフォルダパス
  6.     Dim csvFile As String 'CSVファイルパス
  7.     Dim fileNumber As Integer 'ファイル番号
  8.     Dim lastCol As Integer '最大出力データ列
  9.     Dim col As Integer '列
  10.     Dim i As Long '行数
  11.     
  12.     '保存先フォルダ
  13.     SaveDir = ThisWorkbook.Path & "\CSVデータ"
  14.     
  15.     'フォルダがなければ作成する
  16.     If Dir(SaveDir, vbDirectory) = "" Then
  17.         MkDir SaveDir
  18.     End If
  19.     
  20.     'ファイル作成
  21.     csvFile = SaveDir & "\" & Format(Now, "yyyymmddhhnnss") & "_CSVデータ.csv"
  22.     
  23.     '空いているファイル番号を取得
  24.     fileNumber = FreeFile
  25.     'ファイルをOutputモードで開く
  26.     Open csvFile For Output As #fileNumber
  27.     
  28.     With ThisWorkbook.Worksheets("Sheet1")
  29.         
  30.         'データ出力最大列取得
  31.         lastCol = .Cells(1, Columns.Count).End(xlToLeft).Column
  32.         
  33.         For i = 1 To .Cells(Rows.Count, 2).End(xlUp).Row 'シートを上から処理
  34.                             
  35.             For col = 1 To lastCol - 1
  36.                 
  37.                 '要素をカンマで結合して出力
  38.                 Print #fileNumber, .Cells(i, col) & ",";
  39.                 
  40.             Next
  41.             '要素の最大列を結合して出力
  42.             Print #fileNumber, .Cells(i, col)
  43.     
  44.         Next
  45.     
  46.     End With
  47.     
  48.     'ファイルを保存して閉じる
  49.     Close fileNumber
  50.     
  51. End Sub


13行目:CSVデータ保存先  ExcelVBAファイルの同階層にCSVデータフォルダを作成してそこに保存します
21行目:CSVデータファイルパス  CSVファイル名はこちらで設定してください
28行目:出力元シート設定  出力元シートはこちらで設定してください

スポンサーリンク
 

実装例

以下が実装のインプットとアウトプットのデータです。

インプットExcel

アウトプットCSV

スポンサーリンク

 

まとめ

ExcelVBAでExcelシートのデータをCSVファイルに出力する方法を紹介しました。
他システムへデータ連携するとき等に役に立つと思います。
最後までご覧いただき、ありがとうございました。

 

【ExcelVBA】Excelシートデータを別Excelファイルに出力する方法
【ExcelVBA】ExcelシートをPDF出力する方法(ExportAsFixedFormat)
も紹介していますので、もしよろしければこちらも御覧ください。

 

¥1,604 (2024/11/19 08:45時点 | Amazon調べ)