-
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
|
|