動作検証バージョン: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
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
[スポンサードリンク]
- Newer:Excel VBAで中央値を求める
- Older:Excel VBAで条件に合致する複数行を選択する
Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » 選択範囲をCSV出力するExcelマクロ