【VBA】ExcelデータをCSV出力するマクロ
◇前置き
Excelで加工したデータを他アプリに取り込む際、一旦CSVに変換することってありませんか?
加工したデータをCSV変換用ファイルに移して、名前を付けて保存するだけの作業ではありますが、頻繁にやっていると結構めんどうくさいと思います。
そこで今日は、ワンクリックでCSV出力できるマクロを紹介します。
◇概要
今回はこんな感じのExcelを用意しました。
CSV出力したい表とボタンだけあればOKです。
列(項目)は使う分だけ設定しておいて、行は少し余分に作っておくのがオススメです。
※空白のセルは無視されますので。
また、CSVの出力先としてデスクトップにフォルダを用意しました。
出力されるファイル名はyyyymmdd.csvとしています。
◇ソースコード
今回のソースコードはこんな感じです。
Sub CSV_Output() Dim Output_File As String Dim Output_Range As Range Dim New_Book As Workbook Dim fso As Object Dim To_Date As String To_Date = Format(Date, "yyyymmdd") '出力するCSVのファイルパスを指定 Output_File = "C:\Users\user\Desktop\CSV出力\" & To_Date & ".csv" Set Output_Range = Worksheets("Sheet1").Range("B2:F16") Set New_Book = Workbooks.Add 'CSVファイルへ出力するデータを新規ブックへコピー Output_Range.Copy New_Book.Worksheets(1).Range("A1") Set fso = CreateObject("Scripting.FileSystemObject") '同名のCSVファイルが既に存在する場合は削除する If fso.FileExists(Output_File) Then fso.deleteFile Output_File End If New_Book.SaveAs Filename:=Output_File, FileFormat:=xlCSV, Local:=True New_Book.Close SaveChanges:=False Set fso = Nothing Worksheets("Sheet1").Range("B3:F16").ClearContents MsgBox "CSV出力が完了しました。" End Sub
コピペして使われる方は、アウトプット先のファイルパス・ファイル名、出力範囲などを使いたい条件に編集して使ってください。
◇使い方
さて、実際に動かしてみましょう。
まずは適当なデータを表に入力します。
入力ができたら出力ボタンをクリックします。
すると、こんなメッセージボックスが出てきます。
デスクトップに作った出力用フォルダを確認すると・・・
無事CSV出力されました!
一応中身を確認してみると・・・
ちゃんと入力した内容が出力されていますね!
◇最後に
システム間の連携には意外とCSVが良く使われています。
ちょっとした小技ではありますが、誰かの役に立つと嬉しいです。