- ベストアンサー
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
- EXCELのVBAでマクロを使ってファイルを開こうとしている際、指定したファイルが存在しなかった場合、メッセージボックスを表示させて処理を中止させるか、次のファイルの処理を行うことは可能ですか?
- EXCELのVBAを使用してファイルを開こうとする際、指定したファイルが存在しない場合、マクロのエラーが発生し、ファイルが存在しませんと表示されます。しかし、指定したファイルが存在しない場合には、メッセージボックスを表示させて処理を中止させるか、あるいは無いファイルの処理をスキップして次のファイルの処理を行うことができるのでしょうか?
- EXCELのVBAでファイルを開く際、指定したファイルが存在しない場合は通常マクロのエラーが表示されますが、その代わりにメッセージボックスを表示させ、処理を中止させるか、または無いファイルの処理をスキップして次のファイルの処理を行うことはできるでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでしょうか? Sub sample() Dim Fname As String Fname = "C:\Documents and Settings\001.xls" If Dir(Fname) <> "" Then 'ファイルの有無をチェック Workbooks.Open Filename:=Fname ElseIf MsgBox("ファイル2を開きますか?", vbYesNo + vbQuestion, "問い合わせ") = vbYes Then Workbooks.Open Filename:="C:\Documents and Settings\002.xls" End If End Sub
その他の回答 (3)
- mt2008
- ベストアンサー率52% (885/1701)
On Error GoToを仕掛けてあると、エラー発生時の処理が行えますが、通常はエラーが起こりそうな箇所ではエラーが発生しないかどうかを先に確認します。 If Dir("C:\Documents and Settings\001.xls") = "" Then rtn = MsgBox("マクロを中止する?Noを選ぶと次の002を開きます", vbYesNo) If rtn = vbYes Then Exit Sub Else Workbooks.Open Filename:="C:\Documents and Settings\001.xls" End If Workbooks.Open Filename:="C:\Documents and Settings\002.xls
- mindatg
- ベストアンサー率48% (110/227)
結論としては、可能です。 ファイルの存在チェックはDir関数を使ってください。 以下サンプル Dim strFilePath As String Dim strFileExist As String strFileExist = Dir(strFilePath) if strFileExist = "" Then If MsgBox("ファイルが存在しませんYes , No ", vbYesNo) = vbYes Then '次の002 Else '中止 End If End If ディレクトリの存在可否は、Dir(パス, vbDirectory) となります。
- lockin0220
- ベストアンサー率30% (100/331)
この二つ組み合わせればできそうですね http://www.vba-world.com/if_then_else.html http://www.vba-world.com/msgbox_1.html