Excel VBAにおいても「デバッグ」を行いプログラムの問題点を見つける作業は非常に重要です。
Excel VBAでツールを作成し、いざ実際の業務で使用したは良いものの、正しい処理が行われずにエラーだらけではお話になりません。
また、ツールの作成や改修においてもデバッグのスキルが高い人は作業も早く、さらに正確な処理を実行できるツールを作成する事ができます。
そこで今回はExcel VBAのデバッグにおいて便利な
・ブレークポイント
・ウォッチウィンドウ(ウォッチ式)
・イミディエイトウィンドウ(Debug.Print)
・ステップイン
などの機能について紹介します。
ブレークポイント
ブレークポイントを設定すると、プログラムの実行時に設定したポイントで処理を止めることができます。
ブレークポイントは、VBEのコードを書く場所の左側にある、縦に細長い枠の場所をクリックすると設定する事ができます。
クリックすると、赤い丸の印が表示されます。
下記の例では、処理の実行時にブレークポイントで止めた部分が黄色くなっています。
ウォッチウィンドウと、ウォッチ式の追加
ウォッチ式を追加すると、ウォッチウィンドウで変数などの値や型などを確認する事ができます。
ウォッチウィンドウの表示・非表示
まず、VBE上にウォッチウィンドウが表示されていない場合は、VBE上部の
「表示」⇒「ウォッチ ウィンドウ」
をクリックして、ウォッチウィンドウを表示させてください。
逆にウォッチウィンドウが邪魔な場合は、ウォッチウィンドウ上を右クリックして、さらに「非表示」をクリックする事で非表示にする事ができます。
ウォッチ式の追加
ウォッチ式の追加を行うには、確認したい変数などをマウスをドラッグして範囲選択し、さらに右クリックしてから「ウォッチ式の追加」をクリックします。
すると、ウォッチウィンドウにウォッチ式が追加されます。
下記の画像では、変数iと変数Strをウォッチ式に追加し、さらにブレークポイントで処理を止めた時点での変数の値や型などが表示されているのが分かるかと思います。
イミディエイトウィンドウ
イミディエイトウィンドウでは、変数に代入された値の一覧など、プログラムの処理結果を
Debug.Print
のコードを使用して表示させる事ができます。
VBE上にイミディエイトウィンドウが表示されていない場合は、VBE上部の
「表示」⇒「イミディエイト ウィンドウ」
をクリックして、イミディエイトウィンドウを表示させてください。
逆にイミディエイトウィンドウが邪魔な場合は、イミディエイトウィンドウ上を右クリックして、さらに「非表示」をクリックする事で非表示にする事ができます。
下記の画像では、、変数Strをコード上の
Debug.Print str
でイミディエイトウィンドウに表示されるように設定し、全ての処理を実行する事でイミディエイトウィンドウに処理結果を表示させています。
ステップイン
「ステップ」と名の付くものには「ステップオーバー」や「ステップアウト」などありますが、今回は「ステップイン」についてご紹介します。
「ステップイン」は、ブレークポイントで処理を停止したところから、キーボードの「F8」を押すと、プログラムが1行ずつ実行されます。
「F8」を押す前の画像が下記になりますが・・・
「F8」を1回押した後は、下記のように1行処理が実行されます。