• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAでアクティブなファイルを参照して、ファイル一覧作成(サブフォルダ含む))

VBAでアクティブなファイルを参照して、ファイル一覧作成(サブフォルダ含む)

このQ&Aのポイント
  • VBAを使用して、アクティブなファイルのフォルダ内(サブフォルダも含む)のファイル一覧を作成したいです。
  • 参考サイトを見てパスとファイル名を取得するまではできましたが、アクティブなブックを参照する際にうまくいきません。
  • また、特定のファイルの種類(*.xlsなど)を指定したいです。ファイルサーチを使用した経験もありますが、この方法を応用することができません。

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

  • ベストアンサー
回答No.1

>アクティブなファイル と言うのがわからないのですが、filesearchはoffice2007で廃止になったそうです。 http://support.microsoft.com/kb/935402/ja で、FileSystemObjectかdirで求めるのが良いと思い、dirに書き換えてみました。 ところが、何故かエラーが出ます。 調べたら、丸の中にRみたいな特殊な文字でエラーしているようなので、あきらめました。 と言うわけで、ワイルドカードではありませんが、拡張子(と言うか、右側の文字)で選択できるようにしました。 Sub test() Sheet1.Cells.Clear Sheet1.Cells(1, 1) = "パス" Sheet1.Cells(1, 2) = "ファイル名" files "D:\", 2, ".xls" MsgBox "終了" End Sub Sub files(path As String, ByRef row As Long, mask As String) DoEvents Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Dim f As Object For Each f In fso.GetFolder(path).files If UCase(Right(f.Name, Len(mask))) = UCase(mask) Then Sheet1.Cells(row, 1) = path Sheet1.Cells(row, 2) = f.Name row = row + 1 End If Next For Each f In fso.GetFolder(path).SubFolders files f.path, row, mask Next Set fso = Nothing End Sub

yokko46105
質問者

お礼

なるほど、そちらに付ければよろしいのですね。 初心者のため右往左往しておりますが、勉強になりました^^ ありがとうございました。

関連するQ&A