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
ネタ元