■エラー処理なし
Private Sub コマンド0_Click()
    Dim x As Long
    Dim y As Long
    Dim z As Long
    z = 0
    x = y / z
End Sub
■エラーを無視し、次の行へ移動します
 < On Error Resume Next >
Private Sub コマンド1_Click()
    Dim x As Long
    Dim y As Long
    Dim z As Long
    On Error Resume Next
    z = 0
    x = y / z
End Sub 
■エラーが発生すると、指定行に飛ばす
 < On Error Goto 行ラベル >
Private Sub コマンド2_Click()
    Dim x As Long
    Dim y As Long
    Dim z As Long
    On Error GoTo Err
    z = 0
    x = y / z
    Exit Sub
Err:
    MsgBox "エラーが発生しました。"
End Sub
■エラーが発生すると、指定行に飛ばし、エラー番号で分岐させる
 < On Error Goto 行ラベル >
 < Err.Number >
Private Sub コマンド3_Click()
    Dim x As Long
    Dim y As Long
    Dim z As Long
    On Error GoTo Err
    z = 0
    x = y / z
    Exit Sub
Err:
    If Err.Number = 6 Then
        MsgBox "オーバーフローしました。"
    Else
        MsgBox "不明なエラーが発生しました。"
    End If
End Sub
■エラーが発生すると、指定行に飛ばし、エラー内容を表示する
 < On Error Goto 行ラベル >
 < Err.Description >
Private Sub コマンド4_Click()
    Dim x As Long
    Dim y As Long
    Dim z As Long
    On Error GoTo Err
    z = 0
    x = y / z
    Exit Sub
Err:
    MsgBox "エラーが発生しました。" & vbCrLf & Err.Description
End Sub
 Home
Home  Tips
Tips  メニュー
メニュー