Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » アクティブシートの一部を削除してCSV出力するExcelマクロ

アクティブシートの一部を削除してCSV出力するExcelマクロ

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

アクティブシートの一部を削除してからCSVファイルとして保存するという処理を、最近よく行っています。

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

[スポンサードリンク]

アクティブシートの一部を削除してCSV出力するサンプルマクロ

Cドライブにtempフォルダーがある環境で、以下のExcelマクロを実行すると、アクティブシートが「yyyymmdd-hhmmss.csv」形式のファイル名で、Cドライブtempフォルダーに作成されます。

Sub アクティブシートの5行目までを削除してCSVとして保存する()
 
 Const FOL_PATH = "C:\temp\"
 
 Dim ws As Worksheet
 Set ws = ActiveSheet
 
 Dim bk_tmp As Workbook
 Set bk_tmp = Workbooks.Add
 
 ws.Copy Before:=bk_tmp.Sheets(1)
 bk_tmp.Sheets(1).Rows("1:5").Delete Shift:=xlShiftUp
 
 Dim csv_name As String
 csv_name = Format(Now, "yyyymmdd-hhmmss") & ".csv"
 bk_tmp.SaveAs FOL_PATH & csv_name, FileFormat:=xlCSV
 
 bk_tmp.Close SaveChanges:=False
 
End Sub

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

上記のマクロでは、以下の処理を行っています。

アクティブシートへの参照を変数wsで操作できるようにしておいてから、

 Dim ws As Worksheet
 Set ws = ActiveSheet

ブックを新規に作成して、変数bk_tmpへの代入を行っています。

 Dim bk_tmp As Workbook
 Set bk_tmp = Workbooks.Add

アクティブシートを、作成したばかりのブックの先頭に複製して、

 ws.Copy Before:=bk_tmp.Sheets(1)

1行目から5行目を削除しています。

 bk_tmp.Sheets(1).Rows("1:5").Delete Shift:=xlShiftUp

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

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

CSVファイルとして保存しておいてから、

 bk_tmp.SaveAs FOL_PATH & csv_name, FileFormat:=xlCSV

bk_tmpブックを保存せずに閉じています。

 bk_tmp.Close SaveChanges:=False

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » アクティブシートの一部を削除してCSV出力するExcelマクロ

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

検索


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

.