更新日:、 作成日:

VBA フォルダの作成日時や更新日時を取得または変更する

はじめに

Excel VBA マクロでフォルダの作成日時や更新日時を取得または変更する方法を紹介します。

DateLastModified プロパティなどを使って、作成日時や更新日時の取得ができます。設定はできません。

サブフォルダの日時を取得できます。

ファイルの日時を取得または設定するには「ファイルの日時の取得または変更」をご覧ください。

FileSystemObject について

ここでは VBA の標準の関数より便利な FileSystemObject を使った方法を紹介しています。基本的な使い方については「FileSystemObject ファイル操作の基礎」をご覧ください。

コードを見やすくするため FileSystemObject を参照設定しています。また、エラー処理は行っていません。

フォルダの日時を取得または変更する

フォルダの日時を取得

Dim fso As FileSystemObject
Set fso = New FileSystemObject ' インスタンス化

Dim fl As Folder
Set fl = fso.GetFolder("D:\TipsFolder") ' フォルダを取得

Dim d As Date

d = fl.DateCreated      ' 作成日時を取得
Debug.Print(d)

d = fl.DateLastModified ' 更新日時を取得
Debug.Print(d)

d = fl.DateLastAccessed ' アクセス日時を取得
Debug.Print(d)

' 後始末
Set fso = Nothing

fso.GetFolder 関数で指定したパスの Folder オブジェクトを取得します。フォルダが存在しないときはエラーが発生します。

fl.DateCreated プロパティから、作成日時を取得できます。

fl.DateLastModified プロパティから、更新日時を取得できます。

fl.DateLastAccessed プロパティから、アクセス日時を取得できます。

フォルダに日時を設定

FileSystemObject や VBA の標準機能には日時を変更する機能はありません。

サブフォルダの日時を取得

Dim fso As FileSystemObject
Set fso = New FileSystemObject

Dim pfl As Folder
Set pfl = fso.GetFolder("D:\") ' フォルダを取得

Dim folderName As String
Dim fl As Folder
For Each fl In pfl.SubFolders ' サブフォルダの一覧を取得
    If fl.Name = "TipsFolder" Then  ' 日時を取得したいフォルダ
        Dim d As Date
        d = fl.DateCreated      ' 作成日時を取得
        d = fl.DateLastModified ' 更新日時を取得
        d = fl.DateLastAccessed ' アクセス日時を取得
    End If
Next

' 後始末
Set fso = Nothing

fso.GetFolder 関数で、指定したパスの Folder オブジェクトを取得します。フォルダが存在しないときはエラーが発生します。

pfl.SubFolders プロパティから、そのフォルダ内にある Folder オブジェクトの一覧を取得できます。

fl.DateCreatedfl.DateLastModifiedfl.DateLastAccessed プロパティから、日時の取得ができます。