- ベストアンサー
VBAでアクティブなファイルを参照して、ファイル一覧作成(サブフォルダ含む)
- VBAを使用して、アクティブなファイルのフォルダ内(サブフォルダも含む)のファイル一覧を作成したいです。
- 参考サイトを見てパスとファイル名を取得するまではできましたが、アクティブなブックを参照する際にうまくいきません。
- また、特定のファイルの種類(*.xlsなど)を指定したいです。ファイルサーチを使用した経験もありますが、この方法を応用することができません。
- みんなの回答 (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
お礼
なるほど、そちらに付ければよろしいのですね。 初心者のため右往左往しておりますが、勉強になりました^^ ありがとうございました。