エラー処理|On Error Goto Resume Exit Subの使い方:Access VBA入門

エラーが発生する可能性がある場合、プログラムが中断しないようにエラー処理を行う必要があります。エラー処理で使うのがOn Errorです。ここでは使用例を掲載します。

BackHome BackVBA入門


下はわざとエラーを発生させたVBAです。
わざとエラーを発生させたVBA

n3 = n2 / n1の部分でエラーが発生し、次のDebug.Printは実行されていません。

Sub MyError()
    Dim n1 As Long
    Dim n2 As Long
    Dim n3 As Long
    
    n1 = 0
    n2 = 10
    n3 = n2 / n1
    Debug.Print n3
End Sub

● On Error Resume Next

On Error Resume Nextを使うとエラーを無視し、次の処理に移すことができます。
だったら全てOn Error Resume Nextにすればいいようですが、その場合予期しないエラーを防止できなくなり、予想できない結果になってしまいます。
使用する場合は、予期せぬエラーが発生してもコントロールできるようにしておく必要があります。
On Error Resume Nextのサンプル

Sub MyError()
    Dim n1 As Long
    Dim n2 As Long
    Dim n3 As Long
    
    n1 = 0
    n2 = 10
On Error Resume Next
    n3 = n2 / n1
    Debug.Print n3
End Sub

● On Error Goto Exit Sub

On Error Gotoを使うと指定したラベル位置までとばすことができます。
通常下のように、エラーが発生した場合ラベル位置までとばし、エラーが発生しなかった場合はExit Subでプロシージャを抜けるようにします。
Functionプロシージャの場合は、Exit Functionになります。
On Error Goto Exit Subのサンプル

実行すると、エラーメッセージが表示されます。
エラーメッセージ

Sub MyError()
    Dim n1 As Long
    Dim n2 As Long
    Dim n3 As Long
    
    n1 = 0
    n2 = 10
On Error GoTo ErrSub
    n3 = n2 / n1
    Debug.Print n3
    Exit Sub
ErrSub:
    MsgBox "エラーが発生しました。"
End Sub


BackHome BackVBA入門

Copyright(C) FeedSoft