Option Explicit
Public Sub folder試験()
Dim fullpath As String
fullpath = GetFullPath("D:\goo", "Book1.xlsx")
If fullpath <> "" Then
MsgBox (fullpath)
Else
MsgBox ("該当ファイルなし")
End If
End Sub
Private Function GetFullPath(ByVal folder_name As String, ByVal file_name As String) As String
GetFullPath = ""
Dim FSO As Object
Dim full_path As String
Set FSO = CreateObject("Scripting.FileSystemObject")
If find_file(FSO, folder_name, file_name, full_path) = True Then
GetFullPath = full_path
End If
End Function
Private Function find_file(FSO As Object, ByVal folder_name As String, ByVal file_name As String, full_path As String) As Boolean
Dim flds As Object
Dim fld As Object
find_file = True
full_path = folder_name & "\" & file_name
If FSO.fileexists(full_path) = True Then
Exit Function
End If
Set flds = FSO.getfolder(folder_name).subfolders
For Each fld In flds
If find_file(FSO, folder_name & "\" & fld.name, file_name, full_path) = True Then
Exit Function
End If
Next
find_file = False
End Function
T3B0aW9uIEV4cGxpY2l0CgpQdWJsaWMgU3ViIGZvbGRlcuippumokygpCiAgICBEaW0gZnVsbHBhdGggQXMgU3RyaW5nCiAgICBmdWxscGF0aCA9IEdldEZ1bGxQYXRoKCJEOlxnb28iLCAiQm9vazEueGxzeCIpCiAgICBJZiBmdWxscGF0aCA8PiAiIiBUaGVuCiAgICAgICAgTXNnQm94IChmdWxscGF0aCkKICAgIEVsc2UKICAgICAgICBNc2dCb3ggKCLoqbLlvZPjg5XjgqHjgqTjg6vjgarjgZciKQogICAgRW5kIElmCkVuZCBTdWIKClByaXZhdGUgRnVuY3Rpb24gR2V0RnVsbFBhdGgoQnlWYWwgZm9sZGVyX25hbWUgQXMgU3RyaW5nLCBCeVZhbCBmaWxlX25hbWUgQXMgU3RyaW5nKSBBcyBTdHJpbmcKICAgIEdldEZ1bGxQYXRoID0gIiIKICAgIERpbSBGU08gQXMgT2JqZWN0CiAgICBEaW0gZnVsbF9wYXRoIEFzIFN0cmluZwogICAgU2V0IEZTTyA9IENyZWF0ZU9iamVjdCgiU2NyaXB0aW5nLkZpbGVTeXN0ZW1PYmplY3QiKQogICAgSWYgZmluZF9maWxlKEZTTywgZm9sZGVyX25hbWUsIGZpbGVfbmFtZSwgZnVsbF9wYXRoKSA9IFRydWUgVGhlbgogICAgICAgIEdldEZ1bGxQYXRoID0gZnVsbF9wYXRoCiAgICBFbmQgSWYKRW5kIEZ1bmN0aW9uCgpQcml2YXRlIEZ1bmN0aW9uIGZpbmRfZmlsZShGU08gQXMgT2JqZWN0LCBCeVZhbCBmb2xkZXJfbmFtZSBBcyBTdHJpbmcsIEJ5VmFsIGZpbGVfbmFtZSBBcyBTdHJpbmcsIGZ1bGxfcGF0aCBBcyBTdHJpbmcpIEFzIEJvb2xlYW4KICAgIERpbSBmbGRzIEFzIE9iamVjdAogICAgRGltIGZsZCBBcyBPYmplY3QKICAgIGZpbmRfZmlsZSA9IFRydWUKICAgIGZ1bGxfcGF0aCA9IGZvbGRlcl9uYW1lICYgIlwiICYgZmlsZV9uYW1lCiAgICBJZiBGU08uZmlsZWV4aXN0cyhmdWxsX3BhdGgpID0gVHJ1ZSBUaGVuCiAgICAgICAgRXhpdCBGdW5jdGlvbgogICAgRW5kIElmCiAgICBTZXQgZmxkcyA9IEZTTy5nZXRmb2xkZXIoZm9sZGVyX25hbWUpLnN1YmZvbGRlcnMKICAgIEZvciBFYWNoIGZsZCBJbiBmbGRzCiAgICAgICAgSWYgZmluZF9maWxlKEZTTywgZm9sZGVyX25hbWUgJiAiXCIgJiBmbGQubmFtZSwgZmlsZV9uYW1lLCBmdWxsX3BhdGgpID0gVHJ1ZSBUaGVuCiAgICAgICAgICAgIEV4aXQgRnVuY3Rpb24KICAgICAgICBFbmQgSWYKICAgIE5leHQKICAgIGZpbmRfZmlsZSA9IEZhbHNlCkVuZCBGdW5jdGlvbgoK