PR
スポンサーリンク

【ExcelVBA】現在の日時をファイル名にして保存する(Now,Format関数)

スポンサーリンク
ExcelVBA-現在の日時をファイル名にして保存-アイキャッチ 関数
スポンサーリンク

現在の日付と時刻をファイル名にして保存する方法について説明します。

スポンサーリンク
スポンサーリンク

Now,Format関数を使用してファイル名を作成

現在の日付と時刻を取得するにはNow関数を使用します。

Now関数で取得した現在の日時を指定した書式に変換するにはFormat関数を使用します。

Format(Now,書式)

たとえば現在日時の年(yyyy)、月(mm)、日(dd)、時間(hh)、分(nn)をハイフンで繋いで表示したい場合は次のように書きます。

2025/3/23 12:05に実行した場合

Format(Now,”yyyy-mm-dd-hh-nn”)

2025-03-23-12-05

サンプルマクロで実行している内容
①ワークブックを新規作成する
②保存するファイル名を作成する(yyyy-mm-dd-hh-nn.xlsx)
③新規作成したワークブックを名前を付けて保存する
④ワークブックを閉じる

Sub sample1()

    Dim FileName As String
    Dim wb As Workbook

  'ワークブックを新規作成する…⓵
    Set wb = Workbooks.Add

  '保存するファイル名を作成する…⓶
    FileName = ThisWorkbook.Path & "\" & Format(Now, "yyyy-mm-dd-hh-nn") & ".xlsx"

  '新規作成したワークブックを名前を付けて保存する…⓷
    wb.SaveAs FileName, xlNormal

  'ワークブックを閉じる…⓸
    wb.Close

End Sub

マクロ実行後の状態です。
2025-03-23-12-05.xlsxファイルが作成されました。

スポンサーリンク

NowとFormat関数で日時の書式を指定する方法いろいろ

NowとFormat関数を使用して現在日時をいろいろな書式で表示する方法について説明します。

例)2025年1月1日 8時7分6秒に実行した場合

Format関数の指定出力される値備考
Format(Now,”yyyy/mm/dd”)2025/01/01年月日を/で区切って表示
Format(Now,”yyyy/mm/dd(aaa)”)2025/01/01(水)年月日を/で区切って表示し曜日をカッコで囲んで表示
Format(Now,”yyyy/mm/dd hh:nn”)2025/01/01 08:07年月日を/で区切って表示
時間・分は:で区切って表示
Format(Now,”yyyymmdd-hhnnss”)20250101-080706月日-時分秒を2ケタずつ表示
Format(Now,”yyyymd-hns”)202511-876月日-時分秒を1ケタずつ表示(1桁の場合のみ)

Format関数では色々な書式で日時を表示することができるのでとても便利な関数です。

スポンサーリンク

ファイル名に日時を表示させるときのポイント

ファイル名に使用できない文字に注意

日付を区切るスラッシュ「/」や時間を区切るコロン「:」はファイル名に使用できません。
ファイル名に使用できるハイフン「-」などを使用して見やすい形で表示する必要があります。

見やすくするための工夫

年以外の月・日・時間・分・秒は「m」「d」「h」「n」「s」と指定すると1桁で表示することが可能ですが、1桁で表示できる場合は1桁で表示され、2桁の数字は2桁で表示されます。

フォルダ内にファイルが複数並んだ時に1桁表示のものと2桁表示のものが混在するとぱっと見た感じが統一されていなく見づらくなってしまうので基本的には2桁で指定する方法がおすすめです。

スポンサーリンク

※コードのコピー利用について

・コードのコピーは自由におこなっていただけます。
・気を付けて作成はしていますがコードには誤りがある可能性があります。
・自身の環境で動作確認をしていますが、すべての方の環境で同様に動くことは保証できません。
・データの破損等の責任は負いかねますのでご自身の責任のもとお使いください。
・記事の内容は適宜変更することがありますのでご了承ください。

タイトルとURLをコピーしました