「excel2013 マクロ errorコード取得」
という検索でこのサイト・インストラクターのネタ帳へのアクセスがありました。
Excelでマクロを実行したときに発生する、エラーコードを取得するマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。
エラー番号とメッセージを一覧にするサンプルマクロ
ここで「errorコード」と表現されているものが何か厳密にはわかりませんが、参考になりそうな、エラー番号と、エラーメッセージ・説明を一覧にするExcelマクロをご紹介しておきます。
Dim i As Long
Sheets.Add Before:=Sheets(1)
On Error Resume Next
With ErrFor i = 1 To 1000
.Raise Number:=i
If .Description <> _
"アプリケーション定義またはオブジェクト定義のエラーです。" Then
Cells(i, "A").Value = .Number
Cells(i, "B").Value = .Description
End If
.Clear
Next i
End With ' With Err
End Sub
上記のマクロを実行すると、アクティブなブックの先頭にワークシートが挿入され、A列にエラー番号、B列にエラーメッセージが出力されます。
サンプルマクロの解説
行っている処理は以下のとおりです。
まず、アクティブなブックの先頭にワークシートを挿入して、
Sheets.Add Before:=Sheets(1)
エラーが発生しても中断されないようにしておいてから、
On Error Resume Next
カウンタ変数・iを「1」から「1000」までインクリメントしながらループを回します。
For i = 1 To 1000
ErrObjectのRaiseメソッドで、カウンタ変数・iに該当するエラーを発生させ、
.Raise Number:=i
ErrObjectのDescription(説明)が「アプリケーション定義またはオブジェクト定義のエラーです。」ではなかったときに、
If .Description <> _
"アプリケーション定義またはオブジェクト定義のエラーです。" Then
A列にErrObjectのNumber(エラー番号)を、
Cells(i, "A").Value = .Number
B列にErrObjectのDescription(メッセージ・説明)を書き出して、
Cells(i, "B").Value = .Description
ErrObjectをクリアしています。
.Clear
ちなみに、
ErrObjectオブジェクトを取得するのは、
取得するオブジェクトの名前・ErrObjectとは、微妙に異なるErrメソッドであるというところが、
注意すべき点でもあります。
Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » エラーコード・エラーメッセージ一覧を作成するExcelマクロ