- ベストアンサー
エクセルVBA 「On Error GoTo 0」について
「On Error GoTo 」ステートメントの意味は、だいたい理解しています。 「On Error GoTo 0」 ステートメントについて、ご教授お願いします。 参考書には「エラーのトラップ処理を無効にする」と載っていましたが、よくわかりません。 具体的にどのような使い方をするのか、簡単なコードで説明していただければ幸いです。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
関連するQ&A
- On Error GoTo でエラーが発生する
Sub Macro1() On Error GoTo ErrorTrap1 '-エラーの発生するコード 1 ErrorTrap1: On Error GoTo 0 Do On Error GoTo ErrorTrap2 '-エラーの発生するコード 2 On Error GoTo 0 Loop ErrorTrap2: End Sub しかし、以下のようにSubで二つに分けるとエラーは出ません。 Sub Macro1() On Error GoTo ErrorTrap1 '-エラーの発生するコード 1 ErrorTrap1: On Error GoTo 0 Call Macro2 End Sub Sub Macro2() Do On Error GoTo ErrorTrap2 '-エラーの発生するコード 2 On Error GoTo 0 Loop ErrorTrap2: End Sub 「On Error GoTo 0」がうまく解除できていないのかと思い、いろいろ試してみました。 しかし、どういった理由かはわかりませんでした。 「On Error GoTo」は、Subでは、ひとつしか使えないのでしょうか。
- ベストアンサー
- オフィス系ソフト
- On Error GoToで飛んだ元の位置が知りたい
タイトル通りですが、VB6でOn Error GoTo XXXとしておくと、エラー発生時、XXXのラベルから実行されます。この時、どこから、このエラー処理(XXX)に飛んできたかを知ることは出来ないのでしょうか。要はエラーの発生した場所(ステートメント)を知りたいのですが、どのようにすれば、知ることが出来るでしょうか。現在は、怪しいところに目つけて、そこから1ステップずつ実行しているのですが、効率が悪いので、簡単に知る方法があればと思い質問しました。
- ベストアンサー
- Visual Basic
- [Excel2003] On Error GoTo について教えてください。
エラー処理について教えてください。 以下の様なマクロで、インプットボックスに 数字以外を入力した場合のエラー処理ですが、 次のような手順で進めると 「型が一致しません」とエラー表示されてしまいます。 どこがいけないのでしょうか? 【手順】 ・マクロ実行 ・インプットボックスへ数字以外の文字を入力 ・「OK」クリック ・再びインプットボックス出現 ・もう一度数字以外の文字を入力 ・「OK」クリック←ここでエラー表示! Sub TEST() Dim Tuki As Integer On Error GoTo INPT INPT: Tuki = InputBox("何月分ですか?" & vbCrLf & _ "数字を入力してください。", "集計月入力", 1) If Tuki = 0 Or Tuki > 12 Then MsgBox "1から12の数字を入力してください。" GoTo INPT End If On Error GoTo 0 End Sub
- ベストアンサー
- オフィス系ソフト
- 【VBA】On Error をつけても「Match
【VBA】On Error をつけても「Matchプロパティを取得できません」を回避できません。 今晩は、質問させていただきます。どうぞよろしくお願いいたします。 環境:エクセル2010でございます。 下のようにコーディングしておりますが、「Matchプロパティを取得できません」が出てコード実行が中断されてしまいます。 取得できなかった場合の対処は既に(更にその下に)コーディングしておりますので、Matchのエラーをスルーさせたいのですが。。。 On Error GoTo error1 line1 = (Application.WorksheetFunction.Match(strTime, WS_data.Range("G:G"), 0)) '↑この行でエラーになります。 error1: On Error GoTo 0 On Error GoTo error1をOn Error Resume Nextに変えても同じ症状になってしまいます。 もしお詳しい方がいらっしゃいましたらアドバイスいただけないでしょうか。 どうぞよろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- Access VBA にて on error goto がたまに機能し
Access VBA にて on error goto がたまに機能しないPCがあるます。 具体的には、on error gotoのコーディングを無視して、エラーのポップアップが表示される 何か対応する方法は、ありますか? 環境 ネットーワークにあるmdbをドライブに接続して、Accessを起動しています。 Windows2000(sp4)+Access2000(sp3) 他のPCでは、問題ありません。PCは、イメージをクローンして作成していますので、同一です。 ※コーディングイメージ Private Sub 稼働時間_AfterUpdate() on error goto ERR_稼働時間 Dim errcnt as integer errcnt = 0 DoCmd.GotoRecord A_FORM,"時間入力",A_NEXT <----- エラーのポップアップが表示される if errcnt = 1 Then DoCmd.GotoRecord A_FORM,"時間入力",A_PREVIOUS end if exit sub ERR_稼働時間: errcnt = errcnt + 1 resume next end sub
- ベストアンサー
- その他MS Office製品
- on error 処理に関して
on error goto での処理ルーチン内で、 さらに on error goto を出すことは可能でしょうか。 それとも、一度on errorを設定すると、エラーが発生した後では変更は不可なのでしょうか。 やりたいことは、 1回目と、2回目、3回目以降でやることとを変えたいのです。 例えば、メッセージを変えるとか。 この場合、 エラー処理の中で、何回目かを聞くことで、メッセージを変えることは出来ると思うのですが、 それはやらず、 他にも色々やることが多いので、別処理として飛びたいのです。 以下のようなイメージです。 err1: on error goto err2 resume next err2: on error goto err3 resume next err3: resume next 宜しくお願いします。
- ベストアンサー
- Excel(エクセル)
- Onってなんでしょうか?
私は現在、VB6を使用してプログラム開発を行っています。 「On Error」ステートメントに関して質問させていただきます。 私の管理下のソースに、 (1)「On Error Goto [行ラベル]」 (2)「On Err Goto [行ラベル]」 の2種類のステップがあり、 (2)に関しての動作が不明で困っています。 (要は「On [Object] Goto [行ラベル]」と記述した場合に、 どのように解釈されるのか分らないのですが・・・ (1)、(2)共にコンパイルは通りますが(2)の場合はエラーハンドリングはできません。) <質問> (1)「On Err Goto [行ラベル]」 と記述した場合、 どのような条件でGotoが実行されるのでしょうか? (Errはエラーオブジェクトです) (2)「On」は ・「On Error Goto [行ラベル]」 ・「On Error Resume Next」 ・「On Error Goto 0」 以外に使用する方法があるのでしょうか?
- ベストアンサー
- Visual Basic
- VBAでエラートラップがうまくいきません。
VBAで次のようなプロシージャを実行してみました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Value = " " Then ~コード~ END IF END SUB すると複数のセルが選択されるとエラーがでます。そこで次のようにしてみました。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error GoTo エラー処理 If Target.Value = " " Then On Error GoTo 0 ~コード~ END IF EXIT SUB エラー処理: EXIT SUB END SUB ところがこれでもやっぱりIF文のところでエラーがでます。 当方初心者でなぜエラーがでるのかわかりません。 わかりやすくご教授ください。 よろしくお願いします。
- ベストアンサー
- Visual Basic
- ExcelのVBA で実行エラー5
ExcelのVBA で実行時エラー5のプロシージャの呼び出し、または引数が不正です。 と出るのですが、何が悪いのでしょうか? 引っかかる部分は下のコードの「tf.Writeline (Wl)」のところです。 'On Error GoTo ErrorHandler tf.Writeline (Wl) On Error GoTo 0 Wl = "" C = C + 1 End If 回答よろしくお願いします。
- 締切済み
- Visual Basic
- On ErrorでエラーNoが0
On ErrorでエラーをトラップしてエラーNOとエラー内容をダイアログに表示させています。 Private Sub pv_sample() Dim errno as Long On Error GoTo ERR_END ' 処理内容略 Exit Sub ERR_END: errno = Err.Number MsgBox "システムエラー エラーNO(" & errno & ") 内容(" & Err.Description & ")" End Sub エラーが発生した場合はErr.Numberには0以外がセットされるはずですが 「システムエラー エラーNO(0) 内容()」 というメッセージが表示されることがあります。 On Eroorで飛んできたときにエラーNoが0になってしまうことはありえるのでしょうか。
- ベストアンサー
- Visual Basic
お礼
度々のご回答ありがとうございます。