エラー 処理の 判断 方法 のコツ【Excel VBA 】
Excel VBA に限らず、プログラミング中はいろいろ考えて、ソースコードを記載していきますが、 エラー はさけては通れません。テスト時にいつも悩まされるのが、どこでエラーが起きているか 判断 することです。判断 方法 の基本例を紹介しますが、コツをつかんでしまえば簡単です。
目的:エラー箇所が特定できる仕組みを知る
要件:何らかしらのVBAが使える
結果:エラーソースコードを特定することができる
VBAというか、プログラミングをしているとエラーが出る場合ありますよね?都度わからないメッセージがでてドキッとすることをなくせませんか?
これもいくつか方法ありますが、基本的な仕組みを説明しましょう。
やりたいこと
エラーが出た場合のメッセージの出し方
手段
そもそもエラーが出ないような作り方を目指すべきですが、プログラミングにはエラーは避けては通れません・・・。
しかし、エラーが出た場合の処理や、エラーが出た個所の特定ができれば、解決策を考えることができます。
ExcelVBAのエラーが出た場合の基本的な処理を紹介します。
基本的な処理ですが、ソースコード単位、関数単位で盛り込むことで、どの処理でエラーがでているか一目瞭然となりますので覚えておきましょう。
サンプルソース(コード)
Sub ErrorThrough()
On Error Resume Next
<処理>
On Error Goto 0
End Sub
処理の前後に上記コードを入れると、エラーを無視します。
- #2・・・エラーを無視する宣言
- #4・・・エラー無視宣言解除
#4行目を入れなければ、ずっとエラー無視されるので注意です。
とこれは、エラー回避でなくエラーを無視して処理を継続するので、あまり意味ありませんね・・・。
Sub ErrorCheck()
On Error Resume Next
<処理>
If Err.Number > 0 Then
MsgBox "適宜メッセージ"
End If
End Sub
エラーを無視する関数の流用で、If分岐を追加すれば、エラーメッセージを出力することができます。
- #2・・・エラーが出たら無視する宣言
- #4・・・エラーコードが出た場合
- #5・・・メッセージ MsgBOx ~を表示
処理の前後に入れることで、#5行目のメッセージをアレンジすることで、どの処理でエラーが出ているか容易に判断することができます。
なるほど。エラーが出たときソースコードを読み返すのではなく、ピンポイントでエラー個所がわかるわけですね。
そうです。
ただ、すべてに記載するとソースコードが助長になってしまうので記載するポイントの見極めが大事ですね。