次の方法で共有


Number プロパティ

エラーを示す数値を取得または設定します。 NumberErr オブジェクトの既定のプロパティです。 読み取り/書き込みが可能です。

注釈

オブジェクトからユーザー定義エラーを返す場合は、エラー コードとして選択した番号を vbObjectError 定数に追加して Err.Number を設定します。 たとえば、1051 という番号をエラー コードとして返す場合は次のコードを使用します。

Err.Raise Number := vbObjectError + 1051, Source := "SomeClass"

最初の例は、エラー処理ルーチンでの Number プロパティの一般的な使用方法を示しています。 2 番目の例では、Err オブジェクトの Number プロパティを調べて、オートメーション オブジェクトから返されたエラーがオブジェクトで定義されたものか、Visual Basic で定義されているエラーにマップされたものかを特定します。

定数 vbObjectError は、サーバーで定義されたエラーであることを示すためにオブジェクト独自のエラー コードに追加される非常に大きい負の数値です。 そのため、その数値を Err.Number から減算して、結果から除いています。

オブジェクト定義のエラーの場合は、基準の番号が MyError に残り、エラーの元のソースと共にメッセージ ボックスに表示されます。 Err.Number が Visual Basic エラーを表す場合は、メッセージ ボックスに Visual Basic エラー番号が表示されます。

' Typical use of Number property
Sub test()
    On Error GoTo out
    
    Dim x, y
    x = 1 / y    ' Create division by zero error
    Exit Sub
    out:
    MsgBox Err.Number
    MsgBox Err.Description
    ' Check for division by zero error
    If Err.Number = 11 Then
        y = y + 1
    End If
    Resume
End Sub
' Using Number property with an error from an 
' Automation object
Dim MyError, Msg
' First, strip off the constant added by the object to indicate one
' of its own errors.
MyError = Err.Number - vbObjectError
' If you subtract the vbObjectError constant, and the number is still 
' in the range 0-65,535, it is an object-defined error code.
If MyError > 0 And MyError < 65535 Then
    Msg = "The object you accessed assigned this number to the error: " _
             & MyError & ". The originator of the error was: " _
            & Err.Source & ". Press F1 to see originator's Help topic."
' Otherwise it is a Visual Basic error number.
Else
    Msg = "This error (# " & Err.Number & ") is a Visual Basic error" & _
            " number. Press Help button or F1 for the Visual Basic Help" _
            & " topic for this error."
End If
    MsgBox Msg, , "Object Error", Err.HelpFile, Err.HelpContext

関連項目

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。