Excel/VBAでフォルダ名とファイル名の一部しかわからない時に検索する方法
2018/07/03
Excelマクロで特定のフォルダにアクセスする際に、フォルダ名やファイル名の一部しかわからない時にパスを特定する方法があります。
ざっくり言うとワイルドカードを使ってヒットさせることでパス名を取得します。
もし最後のフォルダ名の一部しかわからない場合、例えば以下のフォルダ名で最後の一部が分からないとします。
C:\Users\...\_source\ExcelVBA\outlook???\
その場合は以下のようにすればA1セルにヒットしたフォルダ名が表示されます。
path1 = Dir("C:\Users\...\_source\ExcelVBA\outlook*", vbDirectory) Range("A1") = path1
以下のようにワイルドカードで示した部分も含めフォルダ名が検知できました。
ファイル名も同じくワイルドカードを使って検知させます。Module1というファイルの拡張子がわからないと想定します。
path1 = Dir("C:\Users\...\_source\ExcelVBA\outlookvba\Module1.*", vbNormal) Range("A1") = path1
実行するとこの通り、ファイル名が検知できました。
[ad#top-1]
フォルダ名とファイル名とがどちらも一部不明の場合は以下のようにすると検知できます。以下の例はフルパスを表示するようにしています。
Sub serchFileName() PathName = "C:\Users\...\_source\ExcelVBA\" 'フォルダーのあいまい検索 FolderName = "outlook*" path1 = Dir(PathName & FolderName, vbDirectory) 'ファイルのあいまい検索 Filename = "Module1.*" path2 = Dir(PathName & path1 & "\" & Filename, vbNormal) Range("A1") = PathName & path1 & "\" & path2 End Sub
結果はご覧のとおりです。
[ad#ad-1]
スポンサーリンク