Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » 選択範囲をCSV出力するExcelマクロ

選択範囲をCSV出力するExcelマクロ

動作検証バージョン:Windows 11 Home + 64bit Excel バージョン 2507(ビルド19029.20184クイック実行)

Excelで、選択したセル範囲のみをCSVファイルにする処理を、最近よく行っています。

そのためのマクロを作ったのでご紹介しておきます。

[スポンサードリンク]

選択範囲をCSV出力するサンプルマクロ

Cドライブにtempフォルダーのある環境で以下のExcelマクロを実行すると、実行した日時がyyyymmdd-hhmmss形式のファイル名になったCSVファイルが、Cドライブtempフォルダーに作成されます。

Sub tool__選択範囲をCSVとして出力する()
 
 Const FOL_PATH = "C:\temp\"
 
 ActiveWindow.RangeSelection.Copy
 
 Dim bk_tmp As Workbook
 Set bk_tmp = Workbooks.Add
 
 bk_tmp.Sheets(1).Paste
 
 Dim csv_name As String
 csv_name = Format(Now, "yyyymmdd-hhmmss") & ".csv"
 bk_tmp.SaveAs FOL_PATH & csv_name, FileFormat:=xlCSVUTF8
 
 bk_tmp.Close SaveChanges:=False
 
End Sub

サンプルマクロで行っている処理

まず、Window.RangeSelectionプロパティで取得できる選択範囲をコピーしておきます。

 ActiveWindow.RangeSelection.Copy

テンポラリーなブックを作成して、その1枚目のシートにコピーしておいたセル範囲を貼り付けます。

 Dim bk_tmp As Workbook
 Set bk_tmp = Workbooks.Add
 
 bk_tmp.Sheets(1).Paste

yyyymmdd-hhmmss形式のCSVファイル名を作成しておいてから、

 Dim csv_name As String
 csv_name = Format(Now, "yyyymmdd-hhmmss") & ".csv"

SaveAsメソッドを使ってCSVファイルを出力して、

 bk_tmp.SaveAs FOL_PATH & csv_name, FileFormat:=xlCSVUTF8

テンポラリーなブックを保存せずに閉じています。

 bk_tmp.Close SaveChanges:=False

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » 選択範囲をCSV出力するExcelマクロ

「マクロのサンプル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.