概要

FileDateTime関数は、VBAで指定したファイルの作成日時や最終更新日時を取得するための関数です。ファイルの監視やメンテナンス、バックアップ処理など、ファイルの日付情報が必要なシナリオで役立ちます。この関数を使用することで、ファイルがいつ作成されたか、または最終的にいつ更新されたかを簡単に知ることができます。

構文

FileDateTime(pathname)

パラメータ

  • pathname

    日付と時刻を取得する対象のファイルのフルパスまたは相対パスを指定します。

戻り値

  • ファイルの作成日時または最終更新日時を日付と時刻の形式(例: “2024/09/25 14:30:00”)で返します。

使用例

基本的な使用例 - ファイルの最終更新日時を取得する

以下の例では、指定したテキストファイルの最終更新日時を取得し、メッセージボックスで表示します。

Sub ShowFileDateTime()
    Dim filePath As String
    Dim fileDate As String

    ' ファイルのパスを指定
    filePath = "C:\Example\sample.txt"

    ' ファイルの最終更新日時を取得
    fileDate = FileDateTime(filePath)

    ' 日付と時刻を表示
    MsgBox "ファイルの最終更新日時は: " & fileDate
End Sub

この例では、FileDateTime関数を使用して、指定したファイルの更新日時を取得しています。結果はメッセージボックスで表示されます。

ファイルが存在するか確認してから日時を取得する

ファイルが存在しない場合、FileDateTime関数はエラーを引き起こします。次の例では、Dir関数を使用してファイルの存在を確認してから日時を取得する処理を行います。

Sub SafeFileDateTime()
    Dim filePath As String
    Dim fileDate As String

    ' ファイルのパスを指定
    filePath = "C:\Example\sample.txt"

    ' ファイルが存在するか確認
    If Dir(filePath) <> "" Then
        ' ファイルの最終更新日時を取得
        fileDate = FileDateTime(filePath)
        MsgBox "ファイルの最終更新日時は: " & fileDate
    Else
        MsgBox "指定されたファイルが存在しません。"
    End If
End Sub

この例では、Dir関数でファイルの存在を確認してからFileDateTimeを使用するため、エラーを防ぐことができます。

フォルダ内のすべてのファイルの更新日時を取得する

次のコードでは、指定したフォルダ内のすべてのファイルの最終更新日時を取得し、結果をDebug.Printで出力します。

Sub ListFilesWithDateTime()
    Dim folderPath As String
    Dim fileName As String

    ' フォルダのパスを指定
    folderPath = "C:\Example\"

    ' フォルダ内の最初のファイルを取得
    fileName = Dir(folderPath & "*.*")

    ' フォルダ内のすべてのファイルを処理
    Do While fileName <> ""
        ' ファイルの最終更新日時を取得して表示
        Debug.Print fileName & ": " & FileDateTime(folderPath & fileName)

        ' 次のファイルを取得
        fileName = Dir
    Loop
End Sub

このコードは、指定されたフォルダ内のすべてのファイルの最終更新日時を順に表示します。Dir関数を使用して、フォルダ内のすべてのファイルを取得し、各ファイルの日時情報を取得します。

エラーハンドリング付きの例

ファイルが存在しない場合やアクセス権限がない場合、FileDateTime関数はエラーを引き起こすため、エラーハンドリングを実装することが重要です。

Sub SafeFileDateTimeWithErrorHandling()
    Dim filePath As String
    Dim fileDate As String

    filePath = "C:\Example\sample.txt"

    On Error GoTo ErrorHandler

    ' ファイルの最終更新日時を取得
    fileDate = FileDateTime(filePath)
    MsgBox "ファイルの最終更新日時は: " & fileDate

    Exit Sub

ErrorHandler:
    MsgBox "エラーが発生しました。ファイルのパスが正しいか、アクセス権限を確認してください。"
End Sub

このコードは、On Error GoTo文を使用して、エラー発生時にユーザーにメッセージを表示し、適切な対応ができるようにしています。

まとめ

FileDateTime関数は、VBAでファイルの作成日や最終更新日時を取得するのに非常に便利な関数です。ファイル管理や更新状況の確認、バックアップなどの処理で有用です。使用する際は、ファイルの存在確認やエラーハンドリングを行うことで、安全かつ効率的に日付情報を取得できます。