- ベストアンサー
EXCEL 他のブックを開く エラー時にメッセージボックスを出したい
マクロで他のブックを開き、それを加工した後にシートに読み込んでいます。 パスが違っていて開かないときには、実行時エラー76 パスが見つかりませんと出ます。 そのエラーメッセージを出さずに自作のメッセージボックスを出すことは可能でしょうか。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> メッセージボックスを出したらそこで終わりになってくれるといいのですが。 以下のようにしてください。 If Dir("C:\Book1.xls") <> "" Then Workbooks.Open "C:\Book1.xls" Else MsgBox "ファイルが存在しません。", vbExclamation Exit Sub End If
その他の回答 (4)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 前回の続きだと思いますので、複数のブックの処理をする場合。 '------------------------------------------- Sub CirculateDeleteRows() Dim fn As Variant Dim mPath As String 'カンマ区切り Const FILES = "123.csv, 124.csv, 126.csv, 125.csv" 'パス(ここを入れないでも可能) mPath = Application.DefaultFilePath & "\" For Each fn In Split(FILES, ",") fn = Trim(fn) If Dir(mPath & fn) <> "" Then Call ExeMacro(mPath & fn) Else MsgBox mPath & fn & ": ファイルが見つかりません。", vbExclamation End If Next fn End Sub Sub ExeMacro(ByVal fn As String) Dim mPath As String Dim sep As String mPath = Mid(fn, 1, InStrRev(fn, "\")) fn = Mid(fn, InStrRev(fn, "\") + 1) On Error GoTo ErrHandler With Workbooks(fn) .ActiveSheet.Rows("5:10").Delete Shift:=xlUp .Close False End With Exit Sub ErrHandler: 'ファイルがあれば開きます。 If mPath <> "" Then sep = "\" Workbooks.Open mPath & sep & fn Resume End Sub
お礼
お答えいただきどうもありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
On Error Go To XXX でXXXに導けるので、そこで好きな(適当と思う)内容のMsgboxを出せばよいのでは。ファイルが存在するかどうかを、前もって聞いて、XXXに誘導するほうが、エラー箇所が具体的・限定的・確定的になってよいと思うが。
お礼
お答えいただきどうもありがとうございました。
補足
ありがとうございます。 ファイルを開くところの前に On Error Goto ErrA (End Subの直前に、) Exit Sub ErrA:MsgBox "ファイルが存在しません。" End Sub と書いて実行してみましたが、これでよさそうなのですが こんな感じでいいのでしょうか。 よろしくお願いします。
- watabe007
- ベストアンサー率62% (476/760)
これで、どうでしょうか On Error Resume Next Workbooks.Open ("・・・・・") If Err Then MsgBox "・・・・・" End If On Error GoTo 0
お礼
お答えいただきどうもありがとうございました。
補足
どうもありがとうございます。 わざと違ったパスを入力してみましたが、 エラーの代わりにメッセージボックスは出るものの そのシートでその後の加工の作業をしてしまいます。 メッセージボックスを出したらそこで終わりになってくれるといいのですが。 よろしくお願いします。
- kmetu
- ベストアンサー率41% (562/1346)
ファイルの存在を先に確認してから開きます。 If Dir("C:\Book1.xls") <> "" Then Workbooks.Open "C:\Book1.xls" Else MsgBox "ファイルが存在しません。", vbExclamation End If
補足
どうもありがとうございます。 わざと違ったパスを入力してみましたが、 エラーの代わりにメッセージボックスは出るものの そのシートでその後の加工の作業をしてしまいシートがぐちゃぐちゃになってしまいます。 メッセージボックスを出したらそこで終わりになってくれるといいのですが。 よろしくお願いします。
お礼
お答えいただきどうもありがとうございました。