#0_7 デバッグ
デバッグの重要性
プログラムを作成する作業と同じくらい重要なのが「プログラムのエラーを直す作業(デバッグ)」です。
エラーには大きく分けて3種類あります。プログラムのコーディングミスによる「構文エラー(コンパイルエラー)」。マクロを実行した時に発生する「実行時エラー」。そしてマクロは動作するが、意図した結果が出てこない「論理エラー」。以下、この3種類についてそれぞれのデバッグ方法を紹介します。
コンパイルエラー
コーディング中に間違った構文を書いてしまった時に生じるエラーですが、これはエラーが非常にわかりやすいです。というのも下の図のように、間違った構文を記述して入力を確定した時にエラーメッセージが表示され、エラーを含むステートメントが赤く表示されます。
この自動エラーチェック機能こそが、VBAの使いやすさを支えていると言っても過言ではありません。
実行時エラー
これは、マクロを実行した時に発生するエラーですが、実例を見るのが手っ取り早いです。
下のマクロを記述して実行すると、次のようなエラーが出ます。
このボックスで「デバッグ」をクリックすることにより、エラーの原因となったステートメントが黄色く表示され、エラーの原因を特定することができます。
論理エラー
上記2つのエラーとは異なり、エラーメッセージが表示されず、プログラマー自身がエラー原因を特定しなければならず、最も厄介なエラーです。
論理エラーのデバッグには近道はありませんが、通常は「ブレークポイントの設定/解除」と「ステップイン」の2つのコマンドを用いればOKです。また、その際に「イミディエイトウィンドウ」をうまく活用できると便利なのですが、長くなるので以下動画で詳しく説明します。