日付入りのファイル名を手作業で付けていませんか?
Excelで報告書やデータファイルを保存する際、「○○_20250630.xlsx」のように日付をファイル名に含めて管理している方も多くないでしょうか?
手作業で日付を入れる場合、次のような問題が起こりがちです。
- 日付の入力ミス(2025/06/32 など)
- 日付のフォーマットが統一されていない(”20240622″と”2024-06-22″が混在)
- そもそも日付の入れ忘れ
こうしたヒューマンエラーを防ぐには、VBAを使って「保存時に自動で日付を入れる仕組み」を作るのが有効です。
「日付入りファイル名で自動保存」するマクロの作り方と、そのカスタマイズ方法について解説します。
自動で日付を付けて保存するVBAコード
次のコードを使うことで、日付を含んだファイル名でブックを保存できます。
Sub SaveWithDate()
Dim path As String ' 保存先のフォルダ
Dim fileName As String ' ファイル名本体
Dim today As String ' 日付文字列
' 保存先のパスを指定(必要に応じて変更)
path = ThisWorkbook.Path & "¥"
' 今日の日付を取得し、"yyyymmdd"形式に変換
today = Format(Date, "yyyymmdd")
' ファイル名を作成(例:"Report_20250630.xlsx")
fileName = "Report_" & today & ".xlsx"
' ファイルを保存
ThisWorkbook.SaveAs Filename:=path & fileName, FileFormat:=xlOpenXMLWorkbook
End Sub
Date関数は「今日の日付」を返します。Format(Date, "yyyymmdd")で、”20250630″ のような形式に変換しています。SaveAsメソッドで、指定のパスに新しいファイルとして保存します。FileFormat:=xlOpenXMLWorkbookは「拡張子が.xlsxの形式で保存」する指定です。
その他のカスタマイズ方法
1. ファイル名の前後に文字列を付ける
fileName = "Sales_" & today & "_まとめ.xlsx"
2. 日付の形式を変更する
today = Format(Date, "yyyy_mm_dd") ' 例:2025_06_30
3. フォルダを指定して保存する
path = "C:¥Users¥ユーザー名¥Documents¥保存用¥"
4. 上書き確認をスキップして自動保存
Application.DisplayAlerts = False
ThisWorkbook.SaveAs Filename:=path & fileName, FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True
実装するメリット
このマクロを導入することで、次のようなメリットがあります。
- ファイル名に日付が入り、履歴管理がしやすくなる
- 手作業による命名ミスがなくなる
- チーム内でファイル命名のルールが統一される
- 同じ処理を何度も使い回せる
まとめ
日付をファイル名に自動挿入するだけでも、業務の精度と効率がぐっと上がります。
今回の内容を応用すれば、曜日や時間まで含めることも可能ですし、用途に応じて柔軟にカスタマイズできます。
マクロが初めての方も、まずはこのような「ファイル名の自動化」からスタートすることで、VBAの便利さを体感できるでしょう。
「保存のたびに正確なファイル名を付ける」
その一手間をVBAが肩代わりしてくれることで、あなたの作業はさらにスムーズになります。
