トップ > 汎用コード > ファイル名に日付を追加

ファイル名に日付を追加2021.12.21 更新:2026.04.04

多数のファイルの名前にまとめて日付を追加するマクロです。

マクロ「AddDateToFileName」を実行すると、ファイル参照ダイアログが表示されます。
ファイルを選択すると、選択したファイル全てのファイル名に、日付が追加されます。



【お薦め】マクロ・プロシージャを管理する無料のツール!
 Excelマクロ管理ツール

サンプルコード2021.12.21 更新:2026.04.04

コードの貼り付け場所   VBAコードをカラーで印刷・Web掲載するためのツールはこちら

'***************************************************************
'* 選択したファイルの名前に日付を追加する
'*--------------------------------------------------------------
'* 概要     | ファイル選択ダイアログボックスで選択したファイルの
'*          | 名前に日付を追加する(複数ファイル選択可)
'*          | 参考:https://excel.syogyoumujou.com/vba/add_date.html
'* 引数     | なし
'* 戻り値   | なし
'* 作成日   | 2021.12.21
'*--------------------------------------------------------------
'* 更新日   | 2026.04.04
'***************************************************************
Public Sub addDateToFileNames()
On Error GoTo LBL_ERROR

    '------------------------------
    ' ファイル選択
    '------------------------------
    Dim varFilePaths As Variant
    varFilePaths = Application.GetOpenFilename("全てのファイル,*.*", , "ファイル選択", , True)
    If VarType(varFilePaths) = vbBoolean Then Exit Sub

    '------------------------------
    ' 日付文字列の生成
    '------------------------------
    Dim strDate As String
    strDate = "_" & Format$(Date, "yyyymmdd")

    '------------------------------
    ' ファイル名に日付を追加
    '------------------------------
    Dim varFilePath     As Variant
    Dim strNewFilePath  As String
    Dim lngDotPos       As Long
    Dim lngRenameCount  As Long
    Dim lngErrorCount   As Long

On Error Resume Next
    For Each varFilePath In varFilePaths
        lngDotPos = InStrRev(varFilePath, ".")
        If 0 < lngDotPos Then
            ' 新しいファイルパスを生成
            strNewFilePath = Left$(varFilePath, lngDotPos - 1) & strDate & Mid$(varFilePath, lngDotPos)

            ' ファイル名を変更
            Name varFilePath As strNewFilePath
            lngRenameCount = lngRenameCount + 1

            ' エラーが発生した場合はエラー回数を記録
            If Err.Number <> 0 Then
                lngErrorCount = lngErrorCount + 1
                Err.Clear
            End If
        End If
    Next varFilePath

On Error GoTo LBL_ERROR

    '------------------------------
    ' 結果表示
    '------------------------------
    Dim strResult(3) As String
    strResult(0) = "ファイル名に日付を追加しました"
    strResult(1) = "実施回数:" & lngRenameCount
    strResult(2) = "成功数 :" & lngRenameCount - lngErrorCount
    strResult(3) = "エラー数:" & lngErrorCount
    MsgBox Join$(strResult, vbLf), vbInformation
    Exit Sub

'------------------------------
' エラー処理
'------------------------------
LBL_ERROR:
    MsgBox "エラー番号:" & Err.Number & vbLf & _
           Err.Description, vbExclamation, "エラーが発生しました"
End Sub

サンプルファイル

今回のコードを載せたファイルを準備しました。よければご使用ください。
●サンプルファイル ダウンロード



ページトップへ戻る

Excel 汎用コード

Copyright(C) 2009- 坂江 保 All Rights Reserved.