エラーの番号と内容を表示
以下のコードは、エラーが発生したときにそのエラーの番号と内容をメッセージボックスに表示する方法を示しています。
' エラーの番号と内容を表示
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
コードの詳細な説明
- サブルーチンの宣言:
Private Sub ErrNumber_ErrDescription()
- このサブルーチンは、エラー情報を表示するためのものです。
- 変数の宣言:
Dim num As Long '変数を宣言する
num
という名前の長整数型の変数を宣言します。
- エラー処理の開始:
On Error Resume Next 'エラー処理を開始する
On Error Resume Next
ステートメントは、エラーが発生した場合でも処理を続行し、次の行に進むことを意味します。
- セルの値を変数に代入:
num = Range("A1").Value 'セルA1の値を代入する
- シートのセル
A1
の値を変数num
に代入します。この行でエラーが発生した場合でも、処理は継続されます。
- シートのセル
- エラー情報を表示:
MsgBox "エラー番号:" & Err.Number & vbCrLf _ & "エラー内容:" & Err.Description
Err.Number
とErr.Description
を使用して、発生したエラーの番号と内容をメッセージボックスに表示します。vbCrLf
は、改行を挿入するための定数で、メッセージボックス内でエラー番号と内容を別々の行に表示します。
実行の流れ
On Error Resume Next
により、エラー処理が有効になります。エラーが発生してもプログラムの実行が停止せず、次の行に進みます。Range("A1").Value
の行で、セルA1
に数値以外が入力されていた場合、エラーが発生しますが、処理は次の行に進みます。MsgBox
により、発生したエラーの番号と内容が表示されます。エラーが発生しなかった場合、Err.Number
は 0 となり、Err.Description
は空文字列となります。
このコードは、デバッグやエラーハンドリングに役立ちます。特に、どのようなエラーが発生しているかを知りたいときに有用です。