サイトについて      連絡先   検索

VBA エラー情報を取得する

はじめに

Excel VBA のエラー情報を取得する方法を紹介します。

Err オブジェクトから発生したエラーの情報を取得できます。

エラー情報を取得する

On Error GoTo [行ラベル] でエラー処理すると、発生したエラー情報を Err オブジェクトから取得できます。

On Error GoTo Catch
    Dim i As Integer
    i = 1
    i = "a" ' エラー発生

Catch:
    Debug.Print(Err.Description) ' 型が一致しません。
    Debug.Print(Err.Number) ' 13

Err から次の情報を取得できます。

プロパティ名 説明
Descriptionエラーに関する説明文型が一致しません。
HelpContextヘルプファイルのトピックに対応するコンテキスト番号1000013
HelpFileヘルプファイルへの絶対パスC:\PROGRA ... VbLR6.chm
LastDLLError最後にDLLを呼び出したときのエラーコード13
Numberエラー番号13
Sourceエラー発生元のオブジェクト名VBAProject

この中でよく使用するのは Description と Number です。このエラー情報を元にどのコードでエラーが発生したのか特定していきます。

エラー表示専用の関数を作成しておくと便利です。

Public Sub ShowErrorMessage()
    
    Dim s As String
    s = "エラーが発生しました。"
    s = s & vbCrLf & "エラー番号:" & Err.Number
    s = s & vbCrLf & "エラー内容:" & Err.Description

    MsgBox(s)

End Sub

次のように使用できます。

On Error GoTo Catch
    Dim i As Integer
    i = 1
    i = "a" ' エラー発生

Catch:
    ShowErrorMessage ' エラー情報表示
1

関連ページ