Excel VBA 初心者の為の入門講座のホームページです

Excel VBA 入門講座


8.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

Copyright (C) pc-users.net, All Rights Reserved.