Errオブジェクトを使ってエラー処理

On Error Resume Next しつつ Errオブジェクトを使えば、エラーで分岐が書ける。

ちなみにエラーが無ければ Err.Number = 0 となる

Option Explicit
Dim dblCalculatedNumber, strDivisorNumber
Do
    strDivisorNumber = InputBox("割る数を入力してください")
    On Error Resume Next
    dblCalculatedNumber = 1 / strDivisorNumber
    If Err.Number = 11 Then
        '0除算エラー。
        MsgBox "0で割ることはできません。"
    ElseIf Err.Number = 13 Then
        '型不一致エラー。
        MsgBox "数値を入力してください。"
    ElseIf Err.Number = 0 Then
         'エラーが発生していない場合はループを抜ける。
        Exit Do
    Else
        'そのほかのエラーの場合。
        MsgBox "想定外のエラーです。"
    End If
    'エラー情報をクリアする。
    Err.Clear
    On Error Goto 0
Loop
MsgBox dblCalculatedNumber


ネタ元