エラーの番号と内容を表示

以下のコードは、エラーが発生したときにそのエラーの番号と内容をメッセージボックスに表示する方法を示しています。

' エラーの番号と内容を表示
Private Sub ErrNumber_ErrDescription()
    Dim num As Long '変数を宣言する
    
    On Error Resume Next 'エラー処理を開始する
    num = Range("A1").Value   'セルA1の値を代入する
    
    '発生したエラー情報をメッセージボックスに表示する
    MsgBox "エラー番号:" & Err.Number & vbCrLf _
        & "エラー内容:" & Err.Description
End Sub

マクロを実行すると、以下のようにA1セルに文字が入力されている場合、以下のメッセージが表示されます

シート

メッセージBOX

コードの詳細な説明

  1. サブルーチンの宣言:Private Sub ErrNumber_ErrDescription()
    • このサブルーチンは、エラー情報を表示するためのものです。
  2. 変数の宣言:Dim num As Long '変数を宣言する
    • num という名前の長整数型の変数を宣言します。
  3. エラー処理の開始:On Error Resume Next 'エラー処理を開始する
    • On Error Resume Next ステートメントは、エラーが発生した場合でも処理を続行し、次の行に進むことを意味します。
  4. セルの値を変数に代入:num = Range("A1").Value 'セルA1の値を代入する
    • シートのセル A1 の値を変数 num に代入します。この行でエラーが発生した場合でも、処理は継続されます。
  5. エラー情報を表示:MsgBox "エラー番号:" & Err.Number & vbCrLf _ & "エラー内容:" & Err.Description
    • Err.NumberErr.Description を使用して、発生したエラーの番号と内容をメッセージボックスに表示します。
    • vbCrLf は、改行を挿入するための定数で、メッセージボックス内でエラー番号と内容を別々の行に表示します。

実行の流れ

  1. On Error Resume Next により、エラー処理が有効になります。エラーが発生してもプログラムの実行が停止せず、次の行に進みます。
  2. Range("A1").Value の行で、セル A1 に数値以外が入力されていた場合、エラーが発生しますが、処理は次の行に進みます。
  3. MsgBox により、発生したエラーの番号と内容が表示されます。エラーが発生しなかった場合、Err.Number は 0 となり、Err.Description は空文字列となります。

このコードは、デバッグやエラーハンドリングに役立ちます。特に、どのようなエラーが発生しているかを知りたいときに有用です。

Follow me!