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