エラー ErrオブジェクトNumberプロパティ解説と使用例

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

Number プロパティ

  • エラーを指定する数値を設定します。
  • 値の取得も可能です。
  • Number プロパティは、Err オブジェクトの既定プロパティです。
  • 値の取得のみ可能です。
  • 解説
  • オブジェクトからユーザー定義エラーを取得する場合は、エラーとして選択した数値を定数 vbObjectError に追加して Err オブジェクトの Number プロパティに設定します。
  • たとえば、次のコードを使って、番号 1051 をエラー コードとして取得します。
  • Option Explicit

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

  • Number プロパティの使用例

  • 最初の例では、エラー処理ルーチンでの Number プロパティの典型的な使用方法を示しています。
  • Option Explicit


    Private Sub test1()
    'Number プロパティの典型的な使用例。

    On Error GoTo out

    Dim x, y
    x = 1 / y ' 0 で除算するエラーを生成します。
    Exit Sub

    out:
    MsgBox Err.Number
    Debug.Print Err.Number
    MsgBox Err.Description
    Debug.Print Err.Description

    ' 0 で除算したエラーかどうかを調べます。
    If Err.Number = 11 Then
    y = y + 1
    End If

    Resume
    '11
    '0 で除算しました。
    End Sub

  • 例では、Err オブジェクトの Number プロパティの値を見て、オートメーション オブジェクトによって返されたエラーが、オブジェクトによって定義されたものであるか、または Visual Basic によって定義されたエラーに割り当てられたものであるかを調べます。
  • 定数 vbObjectError は大きな負の値で、サーバーによって定義されたエラーであることを示すために、オブジェクトが自分のエラー番号に加算するものです。
  • したがって、Err.Number から定数 vbObjectError を差し引けば、オブジェクト定義のエラーか、Visual Basic 定義のエラーかが判別できます。
  • エラーがオブジェクト定義のエラーである場合は、元のエラー番号は Error.Number に格納されています。
  • この番号は、エラーの発生元と共にメッセージ ボックスに表示されます。
  • エラーが Visual Basic のエラーである場合は、そのエラー番号をメッセージ ボックスに表示します。
  • Option Explicit


    Private Sub test2()
    'オートメーション オブジェクトによって返されたエラーが設定された
    'Number プロパティを使用します。
    Dim MyError, Msg
    '最初に、オブジェクト自身のエラーであることを示すために
    '加算した定数を引きます。
    MyError = Err.Number - vbObjectError
    ' 定数 vbObjectError を差し引いた結果のエラー番号が、
    '0 ~ 65,535 の範囲内にある場合、そのエラー番号は
    'オブジェクト定義のエラー番号です。
    If MyError > 0 And MyError < 65535 Then
    Msg = "アクセスしたオブジェクトが、エラーに対して番号 " & MyError & _
    " を割り当てました。エラーの発生元は " & Err.Source & _
    " です。エラー発生元のヘルプを参照するには、F1 キーを押してください。"
    ' 0 ~ 65,535 の範囲外である場合は、Visual Basic のエラー番号です。
    Else
    Msg = "このエラー (エラー番号 " & Err.Number & ") は、" & _
    "Visual Basic のエラー番号です。" & _
    " このエラーに関する Visual Basic のヘルプを参照するには、" _
    & " ヘルプ ボタンまたは F1 キーを押してください。"
    End If
    MsgBox Msg, , "オブジェクト エラー ", Err.HelpFile, Err.HelpContext

    End Sub

 

 

2000年01月01日|[VBサンプルコード]:[Error]