【VBA】○○以前に更新されたファイルを削除する【ログローテーション】

VBAで
 ・○○以前に更新されたファイルを削除
できます!
※例えば「本日日付」と「ファイルの更新日時」の差が7日以上のファイルを削除できます。

つまり
 ・ログローテーション
できます!

PR

VBAコード

ここでは例として
 ・デスクトップ上のフォルダ「test」の配下のファイル「*.log」の
 ・「本日日付」と「ファイルの更新日時」の差が7日以上のファイルを削除
します。
※今回は「本日:2022/12/10」、「7日以前:2022/12/03以前」です。

デスクトップ上のフォルダ「test」の配下のファイル「*.log」
デスクトップ上のフォルダ「test」の配下のファイル「*.log」
Option Explicit

Sub sample()
    
    Dim inputFolder As String
    Dim today As Date
    Dim fso As Object
    Dim file As Object
    Dim filModified As Date
    Dim dDiff As Long

    '対象フォルダ
    inputFolder = "C:\Users\user\Desktop\test"
    '本日日付を取得
    today = Date
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'ファイル数分繰り返し
    For Each file In fso.GetFolder(inputFolder).Files
        'ファイルの更新日時を取得
        filModified = Format(file.DateLastModified, "yyyy/mm/dd")
        '本日日付とファイルの更新日時の差を取得
        dDiff = DateDiff("d", filModified, today)
        'ファイルの更新日時と本日日付の差が7日以上の場合は削除
        If 7 <= dDiff Then
             fso.deleteFile file.Path, True
        End If
    Next
    
    '後片付け
    Set fso = Nothing
    
    MsgBox "正常終了しました。"
    
End Sub

対象フォルダを指定します(13行目)。

「本日日付とファイルの更新日時の差」を取得します(24行目)。

「ファイルの更新日時と本日日付の差」が7日以上の場合は削除します(26~28行目)。

PR

実行結果

○○以前に更新されたファイルを削除できました。
「本日日付」と「ファイルの更新日時」の差が7日以上のファイルを削除できました。

実行結果①
実行結果①
実行結果②
実行結果②
PR

参考①

上記のVBAコードは以下の記事を参考にして作成しました。

詳細は以下の記事をご確認ください。



PR

参考②

上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●Date関数