【ExcelVBA入門】ExcelVBAにおけるエラー処理の書き方
ExcelVBAにおけるエラー処理
こんにちわ、にゃんたです。
ExcelVBAのエラー処理について、個人的な書き方についてメモ。
エラー処理とは?
エラー処理とは、ソース実行時エラーとなった場合の処理を記述して起き、
エラー原因の特定をしやすいようにしたり、予期せぬエラーでアプリ強制終了しないように防いだりできます。
ExcelVBAにおけるエラー処理
まずは、ソースコードを先にお見せします
' ' 機能 :エラー処理テスト ' ' 引数 : ' ' 返り値 : ' ' 備考 : ' Sub errorTest() On Error GoTo errorTest_Err '①エラー発生時にエラー処理へ移動 'Main処理 Dim intTest As Integer '②int型に入らない値を意図的に入れて、エラー発生 intTest = 1000000 '成功時のメッセージ MsgBox "エラーなし", vbInformation Exit Sub '③エラー発生時の処理 divideBaseWord_Click_Err: '④エラーメッセージを表示 MsgBox "エラーが発生しました。" & vbCrLf & _ "【エラー箇所】:" & "Main.errorTest" & "です。" & vbCrLf & _ "【エラー現象】:" & Err.Number & ":" & Err.Description, vbCritical Exit Sub End Sub
①エラー発生時にエラー処理へ移動
On Error GoTo errorTest_Err
これは、エラー発生時に「On Error GoTo errorTest_Err」に飛ぶよ。
といった意味。
基本的には、「関数名 + _Err」が一般的だと思います。
③エラー発生時の処理
①でソースの最初に書いた「On Error GoTo errorTest_Err」の処理を書きます
On Error GoTo errorTest_Err:
④エラーメッセージの表示
ここでは、エラー発生時のメッセージを表示しています。
'④エラーメッセージを表示 MsgBox "エラーが発生しました。" & vbCrLf & _ "【エラー箇所】:" & "Main.errorTest" & "です。" & vbCrLf & _ "【エラー現象】:" & Err.Number & ":" & Err.Description, vbCritical Exit Sub
エラー箇所でエラー発生時のエラー場所がわかるようにしておき、エラー現象でエラーの減少を表示しています。
こうしておくことで、どこの処理で何のエラーが発生したのかわかるようになります。
エラーメッセージはこんな感じで出ます。
関数名は残念なことに、自動で取得できないのでそこだけ注意!!
以上、エラー処理の書き方でしたー
ではではノシ