Excel VBA 入門講座

第6章 7.GoToステートメント Excel VBA 入門講座 第6章 9.For Eachステートメント
On ErrorステートメントOn Errorステートメント

プロシージャ内でエラーが発生した場合のプログラム制御には、On Errorステートメントを使用しGotoステートメントによりエラー処理ルーチンにプログラム制御を移します。


On Error GoTo LABEL名

LABEL名:
     エラー処理 

エラーには実行時エラーと構文エラーとがあり、実行時エラーとはシステムで処理できない動作を実行しようとした場合に発生するエラーであり、構文エラーとは文法上の規則に違反した場合に発生するエラーで、プログラム実行前のコンパイル時に発生します。

エラーはErrオブジェクトを使用することにより、そのエラー内容を知ることができます。

オブジェクト名プロパティ内容
ErrNumberエラー番号
Description エラー番号に対応する文字列(エラー内容)
Source現在のプロジェクト名
HelpFileヘルプファイル名
HelpContext Number ヘルプファイルに対応するコンテキスト番号

エラーが発生した場合プログラムが中断しますが、もし、プログラムを中断したくない場合はResume Nextステートメントを使用します。Resume Nextステートメントを使用するとエラーが発生した次のステートメントからプログラムが継続されます。

以下は、構文エラーが発生した場合のプログラム制御の簡単な例です。


Sub OnErrorTest()
    On Error GoTo ErrorTrap
    
    Dim i As Integer
    i = "test"             '←ココで構文エラーとなる。
    
    MsgBox "終了します。"
    
    Exit Sub

ErrorTrap:
    MsgBox "エラー番号:" & Err.Number
    MsgBox "エラー内容:" & Err.Description
    MsgBox "ヘルプファイル名" & Err.HelpContext
    MsgBox "プロジェクト名:" & Err.Source
    Resume Next
End Sub

第6章 7.GoToステートメント Excel VBA 入門講座 第6章 9.For Eachステートメント TOP