Excel VBA 質問スレッド №1936 (解決済)

ファイルの更新日時の取得

投稿者 : arex     投稿日時 : 2024/06/18(Tue) 19:17:22     OS : 未指定     EXCEL : 未指定
お世話になっております。
このサイトを見て、つかわせてもらっているコードがあり、さらに更新日時も取得できることが可能なら、ご教授いただきたく質問させていただきました。

'Dir関数を使ってフォルダ内のファイル一覧表示
Sub ファイル名取得()

    Range("A2:A1000").ClearContents

    Dim fname As String
    Dim myPath As String
    
    myPath = Range("A1")
    If myPath = "" Then Exit Sub
    
    fname = Dir(myPath & "\*.xls*") 'ファイルの種類を指定
    
    Dim cnt As Long
    cnt = 3
    
    Do While fname <> ""
            Debug.Print fname   'ファイル名のみ取り出せる
            Cells(cnt, "A") = fname
            cnt = cnt + 1
        fname = Dir()
    Loop

End Sub

上記が、普段から大変活用させていただいているコードです。
更新日時も取得できることが可能のようでしたら、お時間ございますとき何卒宜しくお願い致します。

スポンサーリンク
[返信 1] Re : ファイルの更新日時の取得
投稿者 : ピロリ     投稿日時 : 2024/06/18(Tue) 19:32:43
ご参考です。

Cells(cnt, "A") = fname  の下辺りに、

Cells(cnt, "B") = FileDateTime(myPath & "\" & fname)  を追加してはいかがでしょう?

[返信 2] Re : ファイルの更新日時の取得
投稿者 : てらてら     投稿日時 : 2024/06/18(Tue) 19:44:53
こんにちは。

FileSystemObjectを使えばFileオブジェクトで取得できます。
(https://help-vba.com/forderinfile/ から拝借。)

'FileSystemObjectを使ってフォルダ内のファイル一覧
Sub searchFileForFSO()
    Dim FSO As Object
    Dim myFile As Object
    Dim myPath As String

    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    Range("A2:A1000").ClearContents
    
    myPath = Range("A1")
    If myPath = "" Then Exit Sub
    
    Dim cnt As Long
    cnt = 3
    
    For Each myFile In FSO.GetFolder(myPath).Files
        'Debug.Print myFile      'フルパス名が取り出せる
        'Debug.Print myFile.Name     'ファイル名だけ取り出す
        
        If InStr(myFile.Name, ".xls") Then
            Cells(cnt, "A") = myFile.Name
            Cells(cnt, "B") = myFile.DateLastModified '更新日
            cnt = cnt + 1
        End If
        
    Next myFile
    
    Set FSO = Nothing
End Sub

[返信 3] Re : ファイルの更新日時の取得
投稿者 : arex     投稿日時 : 2024/06/19(Wed) 19:03:52
みなさん。
おかげさまで願いが叶いました。
本当にありがとうございました。

当掲示板について
  • Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
  • 記事内ではHTMLのタグは使用できません。
  • 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
  • Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
  • Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
お 名 前  :
内  容   :

ステータス  :

認証コード  : キャプチャ画像 




( 処理日時 : 2025-07-02 22:12:02 )
タイトルとURLをコピーしました