「excel vba csv ファイル名 現在の日付 保存」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。
今日・現在の日付をファイル名にして、CSV形式で保存を行う、Excelマクロ・Excel VBA(Visual Basic for Applications)のコードを探している方による検索です。
アクティブシートを今日の日付をファイル名にしてCSV保存するサンプルマクロ
以下のようなマクロで、アクティブなワークシートを、今日の日付をyyyymmddという形のファイル名にして、Cドライブのtempフォルダーに保存することができます。
ActiveSheet.Copy
ActiveWorkbook.SaveAs _
Filename:="C:\temp\" & Format(Date, "yyyymmdd"), _
FileFormat:=xlCSV
アクティブシートを新規ブックとしてコピーしておいてから、
ActiveSheet.Copy
その新規に作成したブックのファイル名等を指定してCSV形式で保存しています。
ActiveWorkbook.SaveAs _
Filename:="C:\temp\" & Format(Date, "yyyymmdd"), _
FileFormat:=xlCSV
今日・現在の日付をyyyymmdd形式にしているのは、「Format(Date, "yyyymmdd")」の部分です。
Date関数で今日の日付を取得して、Format関数を使ってyyyymmddというフォーマットにしています。
WorkbookオブジェクトのSaveAsメソッドで、引数・FileFormatに定数・xlCSVを指定すると、CSV形式で保存することができます。
全ワークシートのシート名に今日の日付を付与してCSV保存するサンプルマクロ
すべてのワークシートをCSV保存したいという要望も、実務でありがちです。
ここでは、今日の日付をyyyymmddの形にしてシート名を付与したファイル名でCSV保存するマクロをご紹介しておきます。
Dim sh As Worksheet
For Each sh In Worksheets
sh.Copy
With ActiveWorkbook
.SaveAs _
Filename:="C:\temp\" & Format(Date, "yyyymmdd") _
& "_" & ActiveSheet.Name, _
FileFormat:=xlCSV
.Close SaveChanges:=False
End With
Next sh
End Sub上記のマクロを、例えば2015年2月3日に実行すると、「20150203_SheetName」といった形の名前でCSVファイルとして、アクティブなブックの全ワークシートがCドライブのtempフォルダーに保存されます。
全ワークシートにループを回し、
For Each sh In Worksheets
シートを新規ブックにして、
sh.Copy
今日の日付をyyyymmdd形式にしてシート名を付与したファイル名でCSV保存を行い、
With ActiveWorkbook
.SaveAs _
Filename:="C:\temp\" & Format(Date, "yyyymmdd") _
& "_" & ActiveSheet.Name, _
FileFormat:=xlCSV
アクティブなブック(CSVファイル)を閉じています。
.Close SaveChanges:=False
- Newer:表を解除するWordマクロ
- Older:表の中に表があるか調べるWordマクロ
Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » 今日の日付をファイル名にしてCSV保存するExcelマクロ