ファイルの更新日時を取得する方法
スポンサーリンク
Excel VBA でファイルのタイムスタンプ(更新日時)を取得するには標準関数を使用する方法と FileSystemObject を使用する方法があります。
標準関数を使用する方法
FileDateTime 関数を使用します。 FileDateTime はファイルの更新日時を Date 型で返します。
サンプルコードは次の通りです。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | Option Explicit Sub test1() Dim filePath As String Dim fileTimeStamp As Date filePath = "C:\temp\test.txt" 'ファイルの更新日時を取得 fileTimeStamp = FileDateTime(filePath) 'ファイルの更新日時を確認 Debug.Print "ファイルの更新日時は" & fileTimeStamp & "です。" End Sub |
上記を実行するとイミディエイトウインドウに次のようにファイルの更新日時が表示されます。
イミディエイトウインドウの出力結果 | |
1 | ファイルの更新日時は2017/12/02 14:41:37です。 |
FileDateTime が返す値は Date 型なので、 Format 関数で文字列に整形することも可能です。サンプルコードは次の通りです。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 | Sub test2() Dim filePath As String Dim fileTimeStamp As Date filePath = "C:\temp\test.txt" fileTimeStamp = FileDateTime(filePath) Debug.Print "ファイルの更新日時は" & _ Format(fileTimeStamp, "yyyy年mm月dd日 hh時mm分ss秒") & _ "です。" End Sub |
上記を実行するとイミディエイトウインドウに次のようにファイルの更新日時が表示されます。
イミディエイトウインドウの出力結果 | |
1 | ファイルの更新日時は2017年12月02日 14時41分37秒です。 |
FileSystemObject を使用する方法
FileSystemObject の GetFile メソッドにより File オブジェクトを取得して DateLastModified から値を取得します。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Option Explicit Sub test3() Dim objFso As Object Dim objFile As Object Dim fileTimeStamp As Date Set objFso = CreateObject("Scripting.FileSystemObject") Set objFile = objFso.GetFile("C:\temp\test.txt") '更新日時を取得 fileTimeStamp = objFile.DateLastModified Debug.Print "ファイルの更新日時は" & fileTimeStamp & "です。" Set objFso = Nothing Set objFile = Nothing End Sub |
上記を実行するとイミディエイトウインドウに次のようにファイルの更新日時が表示されます。
イミディエイトウインドウの出力結果 | |
1 | ファイルの更新日時は2017/12/02 14:41:37です。 |
DateLastModified が返す値は Date 型なので、 Format 関数で文字列に整形することも可能です。サンプルコードは次の通りです。
VBA(実行可能なサンプルコード) | |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Sub test2() Option Explicit Sub test4() Dim objFso As Object Dim objFile As Object Dim fileTimeStamp As Date Set objFso = CreateObject("Scripting.FileSystemObject") Set objFile = objFso.GetFile("C:\temp\test.txt") '更新日時を取得 fileTimeStamp = objFile.DateLastModified Debug.Print "ファイルの更新日時は" & _ Format(fileTimeStamp, "yyyy年mm月dd日 hh時mm分ss秒") & _ "です。" Set objFso = Nothing Set objFile = Nothing End Sub |
上記を実行するとイミディエイトウインドウに次のようにファイルの更新日時が表示されます。
イミディエイトウインドウの出力結果 | |
1 | ファイルの更新日時は2017年12月02日 14時41分37秒です。 |
スポンサーリンク