• 締切済み

VBAによるカレントフォルダのファイルを検索し開く

カレントフォルダ内にファイル(コ―ド.xls)を見つけ開き、無ければMSG表示したい。 どのように、したらいいですか? 考えているのは、 Application.DefaultFilePath = ThisWorkbook.Path If ??? Then Workbooks.Open "コード.xls" else msgbox (ThisWorkbook.Path & "にコード.xlsを置いて下さい。") Exit sub end If です。 この???の部分を教えて頂きたいと思います。 よろしくお願いします。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

この質問だけであれば。Errorで処理しては如何でしょうか? Sub OnErrorTest() On Error GoTo ErrorTrap Application.DefaultFilePath = ThisWorkbook.Path Workbooks.Open "コード.xls" Exit Sub ErrorTrap: MsgBox (ThisWorkbook.Path & "にコード.xlsを置いて下さい。") Exit Sub End Sub

25630
質問者

お礼

回答有難う御座います。 エラー処理は、別の方法で行っておりますので、今回は使用しませんでしたが、次回の参考にさせて頂きます。 有難う御座いました。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

Dir関数などを使ってファイル存在をチェックします。 Sub test1()   Const fName = "コード.xls"   Dim pName As String   Dim wb  As Workbook   pName = ThisWorkbook.Path & "\"   If Dir(pName & fName) = "" Then     MsgBox pName & "に" & fName & "を置いて下さい。"     Exit Sub   End If   On Error Resume Next   Set wb = Workbooks(fName)   On Error GoTo 0   If wb Is Nothing Then     Workbooks.Open pName & fName   Else     MsgBox fName & "は既に開いています。"     Set wb = Nothing   End If End Sub 簡易的に、Excel既定のエラーメッセージを使うという考え方も あっていいのではないかとも思います。 Sub test2()   On Error GoTo errHndlr   Workbooks.Open ThisWorkbook.Path & "\コード.xls"   Exit Sub errHndlr:   MsgBox Err().Number & vbLf & Err.Description End Sub

25630
質問者

お礼

回答有難う御座います。 今回は、使用しませんでしたが、次回の参考にさせて頂きます。 有難う御座いました。

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

Dir("コード.xls") <> "" これでいかがでしょう。

25630
質問者

お礼

回答有難うございました。 おかげさまで、上手く処理できました。 有難う御座いました。

関連するQ&A

専門家に質問してみよう