【VBA】ファイル/フォルダの作成日時/更新日時を取得する

この記事では
 ・ファイルの作成日時/更新日時
 ・フォルダの作成日時/更新日時
を取得する方法を記載します!

PR

ファイルの作成日時/更新日時を取得する

ファイルの作成日時/更新日時は「Fileオブジェクト」
 ・「DateCreated」プロパティ     ※作成日時
 ・「DateLastModified」プロパティ ※更新日時
で取得できます。

ここでは例として
 ・デスクトップ配下のファイル「aiueo.txt」の
 ・作成日時/更新日時を取得
します。

Option Explicit

Sub sample()
    
    Dim fso As Object
    Dim fileFullPath As String
    Dim file As Object
    
    'ファイルのパスを指定
    fileFullPath = "C:\Users\user\Desktop\aiueo.txt"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'Fileオブジェクトを取得
    Set file = fso.GetFile(fileFullPath)
    
    'ファイルの作成日時を取得
    MsgBox "ファイルの作成日時:" & file.DateCreated
    'ファイルの更新日時を取得
    MsgBox "ファイルの更新日時:" & file.DateLastModified
    
    '後片付け
    Set fso = Nothing
    
End Sub

「FileSystemObject」の「GetFile」メソッドにより、「Fileオブジェクト」を取得します(15行目)。


上記を実行すると、ファイルの作成日時/更新日時を取得できます。

ファイルの作成日時を取得
ファイルの作成日時を取得
ファイルの更新日時を取得
ファイルの更新日時を取得
PR

フォルダの作成日時/更新日時を取得する

フォルダの作成日時/更新日時は「Folderオブジェクト」
 ・「DateCreated」プロパティ     ※作成日時
 ・「DateLastModified」プロパティ ※更新日時
で取得できます。

ここでは例として
 ・デスクトップ配下のフォルダ「folder_001」の
 ・作成日時/更新日時を取得
します。

Option Explicit

Sub sample()
    
    Dim fso As Object
    Dim folderPath As String
    Dim folder As Object
    
    'フォルダのパスを指定
    folderPath = "C:\Users\user\Desktop\folder_001"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'Folderオブジェクトを取得
    Set folder = fso.GetFolder(folderPath)
    
    'フォルダの作成日時を取得
    MsgBox "フォルダの作成日時:" & folder.DateCreated
    
    'フォルダの更新日時を取得
    MsgBox "フォルダの更新日時:" & folder.DateLastModified
    
    '後片付け
    Set fso = Nothing
    
End Sub

「FileSystemObject」の「GetFolder」メソッドにより、「Folderオブジェクト」を取得します(15行目)。


上記を実行すると、フォルダの作成日時/更新日時を取得できます。

フォルダの作成日時を取得
フォルダの作成日時を取得
フォルダの更新日時を取得
フォルダの更新日時を取得

フォルダの更新日時は、フォルダの中にファイルが新規作成 または 削除された際に変更されます。
※フォルダの中のファイルの中身が変更されても、フォルダの更新日時は変更されません。

PR

参考①

ファイル/フォルダの作成日時 または 更新日時ならば、FileDateTime関数でも取得できます。

ここでは例として
 ・デスクトップ配下のファイル「aiueo.txt」の
 ・作成日時 または 更新日時を取得
します。

Option Explicit

Sub sample()
    
    Dim fileFullPath As String
    
    'ファイルのパスを指定
    fileFullPath = "C:\Users\user\Desktop\aiueo.txt"
    
    'ファイルの作成日時 または 更新日時を取得
    MsgBox "ファイルの作成日時 または 更新日時:" & FileDateTime(fileFullPath)
    
End Sub


上記を実行すると、ファイルの作成日時 または 更新日時を取得できます。

ファイルの作成日時 または 更新日時を取得
ファイルの作成日時 または 更新日時を取得

FileDateTime関数で取得された日時は、「作成日時」なのか「更新日時」なのか判別できません。
※新規作成されて以降、未更新ならば「作成日時」です。
※更新されていれば「更新日時」です。

「Fileオブジェクト」と「Folderオブジェクト」の当該プロパティを使用すれば、取得したい日時(作成日時/更新日時)を確実に取得できます。
※よって「Fileオブジェクト」と「Folderオブジェクト」の当該プロパティを使用をオススメします。

PR

参考②

Excelファイルならば、ファイルの各種プロパティ情報を取得することができます。

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

PR

参考③

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

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

PR

参考④

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

「Fileオブジェクト」
「Fileオブジェクト」のメソッド/プロパティの一覧が記載されています。


「Folderオブジェクト」
「Folderオブジェクト」のメソッド/プロパティの一覧が記載されています。


●FileDateTime関数

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