即効テクニック |
アプリケーションの実行中に、何らかのエラーが発生した場合、処理が中断されエラーメッセージが表示されます。 エラー発生時に独自のエラーメッセージを表示するためには、エラーを制御する処理(エラー処理ルーチン)を用意します。 次のサンプルプロシージャは、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 現在のプロシージャに含まれる使用可能なエラー処理ルーチンを無効にします。