「VBA:[Tips]フォルダ内にあるファイル名を検索する」の編集履歴(バックアップ)一覧に戻る
フォルダ階層中にある特定ファイルを探して列挙する。
- フォルダを探す
- 検索で見つかったフォルダ内に、検索条件に合致するファイルを探す。
- ファイルが無いとき、フォルダ内にフォルダがあるかを探す。
…
フォルダもファイルも無いとき、探索終了。
FileSystemObject
1.全てのフォルダを探索する関数
2.検索条件に合致するファイルを探索する関数
3.取得したファイル名を煮たり焼いたりするコード
Sub folderSearch(path)'オブジェクトの生成 With Create.Object("Scripting.FileSystemObject") 'pathはフォルダのパス For Each folder In .GetFolder(path).SubFolders '再起呼び出し。検索でヒットしたフォルダのパスを引数に. Call folderSearch(folder.path) Next folder End WithEnd Sub
For Each file in .GetFolder(path).files'検索語句を含むファイル名を列挙する If file.Name Like target Then Cells(行,列)=file.path '出力したいセルの位置を指定 Cells(行,列)=file.name '出力したいセルの位置を指定 End IfNext file
Sub folderSearch(path)'オブジェクトの生成 With Create.Object("Scripting.FileSystemObject") 'pathはフォルダのパス For Each folder In .GetFolder(path).SubFolders 'ファイルの探索 For Each file in .GetFolder(path).files '検索語句を含むファイル名を列挙する If file.Name Like target Then Cells(行,列)=file.path '出力したいセルの位置を指定 Cells(行,列)=file.name '出力したいセルの位置を指定 End If Next file '再起呼び出し。検索でヒットしたフォルダのパスを引数に. Call folderSearch(folder.path) Next folder End WithEnd Sub