【VBA】ファイルの更新日時を変更する

VBAで
 ・ファイルの更新日時を変更
できます!

VBAから
 ・Power Shellのコマンドレットを実行
することで実現します!

PR

VBAコード

ここでは例として
 ・デスクトップ配下のファイル「aiueo.txt」の
 ・更新日時を変更
します。
※「2022年12月1日 0:00:00」から「2022年12月5日 12:00:00」へ変更します。

変更前は「2022年12月1日 0:00:00」
変更前は「2022年12月1日 0:00:00」
Option Explicit

Sub sample()
    
    Dim targetFile As String
    Dim lastWriteTime As String
    Dim psCommand As String
    Dim wsh As Object
    Dim result As Integer
    
    '対象ファイル
    targetFile = "C:\Users\user\Desktop\aiueo.txt"
    '変更後の日時
    lastWriteTime = "2022/12/05 12:00:00"
    
    'PowerShellのコマンドレットを組み立て
    psCommand = "powershell -NoProfile -ExecutionPolicy Unrestricted "
    psCommand = psCommand & "Set-ItemProperty " & targetFile & " -name LastWriteTime -value '" & lastWriteTime & "'"

    Set wsh = CreateObject("WScript.Shell")
    
    'PowerShellのコマンドレットを実行
    result = wsh.Run(command:=psCommand, WindowStyle:=0, WaitOnReturn:=True)
    
    If (result = 0) Then
        MsgBox ("正常終了しました。")
    Else
        MsgBox ("異常終了しました。")
    End If
    
    '後片付け
    Set wsh = Nothing
    
End Sub

「対象ファイル」を指定します(12行目)。
「変更後の日時」を指定します(14行目)。

実行するPower Shellのコマンドレットを組み立てます(17~18行目)。
※「Set-ItemProperty」コマンドレットにより「更新日時」を変更をします。
※「更新日時」を変更のため「-name」に「LastWriteTime」を指定します。「作成日時」を変更したい場合は
 「CreationTime」を指定します。
※「-value」に「変更後の日時」を指定します。

PR

実行結果

ファイルの更新日時を変更できました。
※「2022年12月1日 0:00:00」から「2022年12月5日 12:00:00」へ変更できました。

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

参考①

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


PR

参考②

ファイルの更新日時を取得することもできます。

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

PR

参考③

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

●「Set-ItemProperty」コマンドレット