エクセルマクロVBA エラー処理(デバッグ)
コンパイルエラーはコードを記述しているときに、VBE上で検出されます。
実行時エラーは、プログラムを実行するとメッセージを表示してプログラムが停止し、どこでエラーが出たのかエラー箇所を表示することができます。
しかし、論理エラーは、エラーとして出力されず、処理が完了するか無限ループに陥るため、ステートメントの内容を確認しながらデバッグする必要があります。
デバッグには、VBEの機能を使用します。
「エクセルマクロVBA エラー処理(デバッグ)」
1.シングルステップ
VBEの「デバッグ」メニューの「ステップイン」をクリック、または「F8」キーを使用して、1ステートメントごとに処理を行います。
変数名をポイントすると、変数の値を確認することができるので、値が合っているか確認することができます。
また、プロシージャ内に「Debug.Print」ステートメントを組み込んでおくと、イミディエイトウィンドウに変数の値を表示させることができます。
イミディエイトウィンドウを表示するには「表示」メニューの「イミディエイトウィンドウ」をクリックします。
※イミディエイトウィンドウについてはこちらから↓
(1)コンパイルエラー
コンパイラは、VBAで記述したプログラムを機械語に変換するソフトウェアで変換できないコードが記述されていると、コンパイルエラーが表示されます。
例えば、スペルミスで存在しないキーワードを入力したり、文法上の誤りがあったりしたときに表示されます。
コンパイルエラーはコード実行中に表示されたり、Visual Basic Editor(以下、VBE)ではコードの記述中にも表示されます。