トップページ

#0_7 デバッグ


デバッグの重要性

プログラムを作成する作業と同じくらい重要なのが「プログラムのエラーを直す作業(デバッグ)」です。

エラーには大きく分けて3種類あります。プログラムのコーディングミスによる「構文エラー(コンパイルエラー)」。マクロを実行した時に発生する「実行時エラー」。そしてマクロは動作するが、意図した結果が出てこない「論理エラー」。以下、この3種類についてそれぞれのデバッグ方法を紹介します。

コンパイルエラー

コーディング中に間違った構文を書いてしまった時に生じるエラーですが、これはエラーが非常にわかりやすいです。というのも下の図のように、間違った構文を記述して入力を確定した時にエラーメッセージが表示され、エラーを含むステートメントが赤く表示されます。

この自動エラーチェック機能こそが、VBAの使いやすさを支えていると言っても過言ではありません。

実行時エラー

これは、マクロを実行した時に発生するエラーですが、実例を見るのが手っ取り早いです。

下のマクロを記述して実行すると、次のようなエラーが出ます。

このボックスで「デバッグ」をクリックすることにより、エラーの原因となったステートメントが黄色く表示され、エラーの原因を特定することができます。

論理エラー

上記2つのエラーとは異なり、エラーメッセージが表示されず、プログラマー自身がエラー原因を特定しなければならず、最も厄介なエラーです。

論理エラーのデバッグには近道はありませんが、通常は「ブレークポイントの設定/解除」と「ステップイン」の2つのコマンドを用いればOKです。また、その際に「イミディエイトウィンドウ」をうまく活用できると便利なのですが、長くなるので以下動画で詳しく説明します。