VBA-エラー処理

VBAエラー関連処理

On Error GoTo

実行時エラーの発生時にエラー処理をするにはOn Error GoToステートメントを利用します。


On Error GoTo ERR_PROC
  '実行時エラーが発生する可能性のある処理
ERR_PROC:
  'エラー時の処理

On Error Resume Next

途中でエラーの後も処理を続けたい時はOn Error Resume Nextを利用します。


On Error Resume Next
For i = 1 To 5
    'エラーが発生しても次のステップで実行する。
    func(i)
Next i

エラーを投げる。

実行時エラーを投げるにはErr.Raiseを使用します。


Err.Raise エラー番号, オブジェクト名, エラーメッセージ

引数は

エラー番号は0~512の値はシステムエラー用に予約されているため、ユーザー定義のエラーに使用できるのは「513~65535」の範囲で指定します。

オブジェクト名はエラーが発生した箇所などを文字列で記述します。

エラーメッセージを任意に記述します。


Err.Raise 513, "UpdateData", "Error message"

Errオブジェクト

Err.Number エラーを指定する数値を設定します。
Err.Source 最初にエラーを発生させたオブジェクトまたはアプリケーションの名前を示す文字列 (String) 式を設定します。
Err.Description エラーを説明する文字列を取得または設定します。
Err.HelpFile ヘルプ ファイルへの絶対パスを含む文字列 (String) 式を設定します。
Err.HelpContext ヘルプ ファイルのトピックを表すコンテキスト ID を含む整数 (Integer) を設定します。
Err.LastDLLError ダイナミック リンク ライブラリ (DLL) の呼び出しにより作成されたシステム エラー コードを返します。

関連ページ