エラーを無視してエラーを使う
エラーに対処する方法として
エラートラップを作るという方法があります。
これは、
On Error GoTo ErrHandle
などとしてエラーが起きたときに、
「ErrHandle」行ラベルに行き
エラーに対処するという方法です。
今回は
これを使わないでエラーに対処する方法です。
まず、エラーが起きてもそのまま次を実行する状態に
次のコードでします。
On Error Resume Next
このコードでエラーが起きても無視して次へ進みます。
「無視」するとデバッグモードになりません。
エラーが発生していない時はErr = 0 です。
逆にエラーが発生しているときはErr <> 0 になります。
これを利用してエラーが発生しているかいないかを判定します。
コードはこちら
Sub macro110807a() |
この構造を使って、
以前の記事『
2度目のエラーは捕えない
』
の中の
macro110806bと同じことをしてみます。
次のプロシージャは、
エラーを故意に引き起こしも問題なく
1から100までの数字を順番にA列に入れます。
コードはこちら
Sub macro110807b() |
「On Error GoTo ○○」を使って1回エラーになり
○○に飛んでから
GoToステートメントで戻ると、
2回目のエラーではデバッグモードになってしまいます。
一方、上のコードの中のIf文、
If Err <> 0 Then
…
End If
この中でGoToステートメントを使って前に戻っても
デバッグモードにはなりません。
その代わりに永遠に続くことになりますので、
ある程度でストップする別の対処が必要です。
| 固定リンク
この記事へのコメントは終了しました。

コメント