イディミエイト・ウォッチ・ローカルウィンドウ

VBEが表示された状態では、ブレークポイント設置やStopステートメントを書いてマクロ起動させ、停止して各変数やセル内容を確認することができます。
イミディエイトウィンドウ
ソースコード上に記載されている変数は、マウスを当てるだけで内容が確認できますが、その行為だけでは変数内容が見られないケースも出てきます。
  • 隠れているシートやセルの内容
  • (難しいですが)配列化させた変数で現在指されていない配列要素
  • オブジェクトの上のソースコード上に記載がないプロパティ値
などがそうです。このような場合は、「イミディエイトウィンドウ」を開いて確認します。
「イミディエイトウィンドウ」は、VBEの「表示」メニューにあります。選択すると「空」のウィンドウが開きます。

イミディエイトウィンドウ

このウィンドウに「?」を先頭に置いて、表示させたい変数や式、プロパティ値(オブジェクトから明示する)を記述し、Enterを押すと、次の行に値が表示されます。
また、コード中に「イミディエイトウィンドウ」に表示させる内容(プロシージャ名や変数値)を記述させることもできます。記述中に「Debug.Print」に続いて表示させる文字列を指定します。



ユーザーフォームなどで、イベントが輻輳してしまうようなケースでは、「ステップ実行」を行なうと、実際の動作とイベントの状況が異なる場合がありますから、各プロシージャの先頭にこのサンプルのようにプロシージャ名を指定すると、「イミディエイトウィンドウ」にどの順にプロシージャが遷移したかが上から順に表示されます。
複雑なループ処理を作る場合も、どのループの順に動くかなどをチェックするのに便利です。

但し、この方法はソースコード上にデバッグのための記述を埋め込むことになるので、最終的に削除することを意識して運用する必要があります。

ウォッチウィンドウ
連続して変数や式の結果を確認する必要がある場合は「ウォッチウィンドウ」を使う方法もあります。複数の変数や式を登録しておくと一覧で表示されるので初心者には便利だと思います。

ウォッチウィンドウ

「ウォッチウィンドウ」は、マクロの起動前か中断中にウィンドウを右クリックして「ウォッチ式の追加」でウォッチしたい変数や式を登録しておく必要があります。

ウォッチ式の追加

変数やプロパティ値であれば、その変数なを「式」に入力するだけで利用できます。プロシージャやモジュールも指定できます。「式」に条件式を登録して、その条件によって中断させるような使い方もできます。

ローカルウィンドウ
一方、「ウォッチウィンドウ」を変数の値だけに限って事前登録なく表示できるようにしてあるのが「ローカルウィンドウ」です。

ローカルウィンドウ

これは「ウォッチウィンドウ」と違い、事前に「式」の登録が必要ないので呼び出しだけで簡単に見られますが、変数が多い場合は監視不要な変数まで表示されてしまいます。
このページで紹介した方法を知っていれば、かなり複雑なマクロ(フォームや複数のプロシージャで構成されるような)を作ったとしても、必要な動作検証ができるはずです。