Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » エラーコード・エラーメッセージ一覧を作成するExcelマクロ

エラーコード・エラーメッセージ一覧を作成するExcelマクロ

対象:Excel2007, Excel2010, Excel2013

「excel2013 マクロ errorコード取得」
という検索でこのサイト・インストラクターのネタ帳へのアクセスがありました。

Excelでマクロを実行したときに発生する、エラーコードを取得するマクロ・VBA(Visual Basic for Applications)のコードを探している方による検索でしょうか。

[スポンサードリンク]

エラー番号とメッセージを一覧にするサンプルマクロ

ここで「errorコード」と表現されているものが何か厳密にはわかりませんが、参考になりそうな、エラー番号と、エラーメッセージ・説明を一覧にするExcelマクロをご紹介しておきます。

Sub エラー番号とエラーメッセージの一覧を作成する()
 Dim i As Long

 Sheets.Add Before:=Sheets(1)

 On Error Resume Next

 With Err
 For 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オブジェクトを取得するのは、

エラーコード・エラーメッセージ一覧を作成するExcelマクロ

取得するオブジェクトの名前・ErrObjectとは、微妙に異なるErrメソッドであるというところが、

エラーコード・エラーメッセージ一覧を作成するExcelマクロ

注意すべき点でもあります。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » マクロのサンプル » エラーコード・エラーメッセージ一覧を作成するExcelマクロ

「マクロのサンプル」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.