各種エラー処理

VBAでエラーを回避するにはエラートラップの「On Error ステートメント」を使います。


スポンサードリンク





■エラー処理なし
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




Access-Access!

Copyright(C) 2008 FeedSoft