Clear メソッド

Err オブジェクトのプロパティ設定をすべて解除します。

構文

object.Clear

object は、常に Err オブジェクトです。

解説

たとえば On Error Resume Next を使用してエラー処理の延期を使用する場合など、エラーが処理された後に Err オブジェクトを明示的に解除するには Clear を使用します。 次のいずれかのステートメントが実行される場合は必ず、Clear メソッドが自動的に呼び出されます。

  • すべての種類の Resume ステートメント
  • Exit SubExit FunctionExit 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 のサポートおよびフィードバックを参照してください。