質問: Excel Vbaにお詳しい方に質問です。
回答: こんにちは。 ご提示のコードは、実行ファイルと同じフォルダにあるファイルを探しているので、ご要望通りにならないのだと思われます。 以下のコードでどうでしょうか。 Sub Test1() Dim fName As String 'ファイル名 Dim sFolder As Object 'サブフォルダ Dim dFile As Object '発見ファイル Dim flg As Boolean 'フラグ fName = "Test1.xlsx" 'ファイル名設定 flg = False 'フラグ初期化 With CreateObject("Scripting.FileSystemObject") 'FSO生成 For Each sFolder In .GetFolder(ThisWorkbook.Path & "\").SubFolders '実行ファイルがあるフォルダのサブフォルダコレクションを走査 For Each dFile In sFolder.Files 'サブフォルダのファイルを走査 If dFile.Name = fName Then 'ファイル名が一致すれば flg = True 'フラグ立てる Workbooks.Open (dFile) 'ファイル開く End If Next dFile Next sFolder End With If flg = False Then MsgBox "ファイルが見つかりません" 'フラグが立っていなければメッセージ End Sub