• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル(VBA)でファイル名(サブフォルダ含む)、更新日時を表示させたい)

エクセル(VBA)でファイル名(サブフォルダ含む)、更新日時を表示させたい

このQ&Aのポイント
  • エクセルのVBAでフォルダ以下の全てのファイル名と更新時間を表示する方法について教えてください。
  • サブフォルダ内のファイルを表示させることができません。良い方法を教えてください。
  • エクセル(VBA)でサブフォルダ内のファイル名と更新時間を表示する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

やりたい事は FileSearch で .SearchSubFolders = True にするのと違う事でしょうか? Sub Test() Dim i as Long  With Application.FileSearch   .NewSearch   .LookIn = "C:\My Documents"   .FileType = msoFileTypeAllFiles   .SearchSubFolders = True   If .Execute() > 0 Then    For i = 1 To .FoundFiles.Count     Cells(i + 1, 1) = .FoundFiles(i)     Cells(i + 1, 3) = FileDateTime(.FoundFiles(i))    Next i   End If  End With End Sub

kamechan
質問者

お礼

早速のご回答ありがとうございます。 これです。これ。 これをやりたくていろいろ調べて作ってみたのが、質問のところに載せたものです。全然短いプログラムで済んでしまうんですね。 ただ、インターネットのショートカットファイルで「プロシージャの呼び出し、または引数が不正です」となり、止まってしまいますが、これは直せないでしょうか? 宜しくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.2

#1です。 ショートカットの場合 FileSearch の FoundFiles には、ショートカット先のパス(やURL)が返るようです。 ショートカットファイルそのものを取得する方法は知りません。  For i = 1 To .FoundFiles.Count   On Error Resume Next   Cells(i + 1, 1) = .FoundFiles(i)   Cells(i + 1, 3) = FileDateTime(.FoundFiles(i))  Next i のように逃げるとか。。 あと、私自信は使った事ないのですが、ファイルシステムオブジェクトを使うと FileSearch よりもっと高度な事が出来るようですよ。 http://www6.plala.or.jp/MilkHouse/practical/contents306/contents30601.html

参考URL:
http://www6.plala.or.jp/MilkHouse/practical/contents306/contents30601.html
kamechan
質問者

お礼

papayuka様、何度もすみません。 「On Error Resume Next」で逃げることにします。ファイルシステムオブジェクトについては今後勉強していこうと思います。 お世話になりました。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A