サイトについて      連絡先   検索

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プロパティから、日時の取得ができます。

関連ページ