Clear メソッド
構文
object.Clear
object は、常に Err オブジェクトです。
解説
たとえば On Error Resume Next を使用してエラー処理の延期を使用する場合など、エラーが処理された後に Err オブジェクトを明示的に解除するには Clear を使用します。 次のいずれかのステートメントが実行される場合は必ず、Clear メソッドが自動的に呼び出されます。
- すべての種類の Resume ステートメント
- Exit Sub、Exit Function、Exit Property
- あらゆる On Error ステートメント
注:
他のオブジェクトへのアクセス中に生成されたエラーを処理するときに、On Error GoTo よりも On Error Resume Next 構成要素が適している場合があります。 オブジェクトの操作後に Err を確認すると、エラーの発生時にコードがアクセスしていたオブジェクトを明確にできます。 Err.Number にエラー コードを設定したオブジェクトと、最初にエラーを生成したオブジェクト (Err.Source で指定されるオブジェクト) についても確認できます。
例
この例では、Err オブジェクトの Clear メソッドを使用して Err オブジェクトの数値プロパティーを 0 に、文字列プロパティーを長さ 0 の文字列にリセットします。 次のコードから Clear を省略した場合は、(エラーの発生後に) ループが繰り返されるたびに、2 回目以降の計算でエラーが生成されたかどうかには関係なく、エラー メッセージのダイアログ ボックスが表示されます。 コードをシングル ステップで実行すると効果を表示できます。
Dim Result(10) As Integer ' Declare array whose elements
' will overflow easily.
Dim indx
On Error Resume Next ' Defer error trapping.
Do Until indx = 10
' Generate an occasional error or store result if no error.
Result(indx) = Rnd * indx * 20000
If Err.Number <> 0 Then
MsgBox Err, , "Error Generated: ", Err.HelpFile, Err.HelpContext
Err.Clear ' Clear Err object properties.
End If
indx = indx + 1
Loop
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。