HOME > 即効テクニック > AccessVBA > エラー処理・入力チェック > 独自のエラーメッセージを表示する(On Errorステートメント)

即効テクニック

エラー処理・入力チェック

独自のエラーメッセージを表示する(On Errorステートメント)

(Access 2000/2002)
アプリケーションの実行中に、何らかのエラーが発生した場合、処理が中断されエラーメッセージが表示されます。
エラー発生時に独自のエラーメッセージを表示するためには、エラーを制御する処理(エラー処理ルーチン)を用意します。
次のサンプルプロシージャは、On Errorステートメントを使って、エラーが発生したらメッセージボックスを表示して処理を終了しています。
On Errorステートメントは、エラー処理ルーチンを有効にし、プロシージャ内でのエラー処理ルーチンの位置を指定します。
Sub Sample()
    Dim i As Integer
    
    On Error GoTo Err_Msg
    
    i = 1 / 0

    Exit Sub

Err_Msg:
    MsgBox "エラーが発生しました"
End Sub
サンプルプロシージャでは、0で除算を行うのでエラーが発生します。
エラーが発生すると、On Errorステートメントで指定された「Err_Msg」という行ラベルで設定したエラー処理ルーチンにプログラムの制御が移り、エラー処理(メッセージボックスの表示)がおこなわれます。
On Errorステートメントには、次の構文があります。

<構文1> On Error GoTo line
引数lineに指定した行から始まるエラー処理ルーチンを有効にします。引数lineは必ず指定します。引数line には任意の行ラベルまたは行番号を指定します。実行時エラーが生成されると、ここで設定したエラー処理ルーチンにプログラムの制御が移り、エラー処理ルーチンがアクティブになります。引数lineに指定する行は、On Errorステートメントと同じプロシージャ内に存在しなければなりません。この制限に従わなければ、コンパイル時エラーが発生します。 

<構文2> On Error Resume Next
実行時エラーが発生してもプログラムを中断せず、エラーが発生したステートメントの次のステートメントから実行を継続します。オブジェクトを操作する場合は、On Error GoToステートメントではなく、このステートメントを使ってください。 

<構文3> On Error GoTo 0
現在のプロシージャに含まれる使用可能なエラー処理ルーチンを無効にします。