Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » 今日の日付をファイル名にしてCSV保存するExcelマクロ

今日の日付をファイル名にしてCSV保存するExcelマクロ

対象:Excel2007, Excel2010, Excel2013

「excel vba csv ファイル名 現在の日付 保存」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがあることに気づきました。

今日・現在の日付をファイル名にして、CSV形式で保存を行う、Excelマクロ・Excel VBA(Visual Basic for Applications)のコードを探している方による検索です。

[スポンサードリンク]

アクティブシートを今日の日付をファイル名にしてCSV保存するサンプルマクロ

以下のようなマクロで、アクティブなワークシートを、今日の日付をyyyymmddという形のファイル名にして、Cドライブのtempフォルダーに保存することができます。

Sub 今日の日付をファイル名にしてアクティブシートをCSV保存()

 ActiveSheet.Copy

 ActiveWorkbook.SaveAs _
  Filename:="C:\temp\" & Format(Date, "yyyymmdd"), _
  FileFormat:=xlCSV

End Sub

アクティブシートを新規ブックとしてコピーしておいてから、
 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保存するマクロをご紹介しておきます。

Sub 今日の日付をワークシート名に付与して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

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » 今日の日付をファイル名にしてCSV保存するExcelマクロ

「Workbooks・Workbook」の記事一覧

検索


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

.