2019/11/23

VBEの各ウィンドウの役割りと使い方

VBA(Visual Basic for Applications)を記述するツールがVBE(Visual Basic Editor)です。
いくつかのウィンドウに分かれていますが、それぞれのウィンドウには名前がついています。


オブジェクトブラウザを選択すると、コードウィンドウの場所にブラウザが表示されます。


それぞれのウィンドウが表示されていない場合はVBEの表示から、各ウィンドウ・ブラウザ・エクスプローラを表示させて下さい。また既に表示されていても表示高さが少なくて見えない場合もあります。
一応、それぞれのウィンドウの概要を書いてみます。

<プロジェクトエクスプローラ>
現在開かれているモジュールの集まりです。裏で動いているものもありますので、見かけないブックが表示されている場合もあります。

<プロパティウィンドウ>
現在アクティブになっているオブジェクトの性質や状態が表示され、設定が可能です。

<コードウィンドウ>
VBAのコードを記入します。マクロ自動記録もここに記録されます。コードウィンドウの左端列には、ブレークポイント(強制的にプログラムを中断する位置)を設定することができます。
プロジェクトエクスプローラでフォームを選択時した場合には、コントロール等を配置するベースのユーザーフォームが表示されます。

<イミディエイトウィンドウ>
プログラム実行中の変数やプロパティ等の値を表示できます。方法はプログラム中に「Debug.Print 〇〇〇」というように、〇〇〇の部分に知りたい変数等を記入します。
プログラム途中に「msgbox 〇〇〇」と記入しても値を知ることはできますが、いちいちOKボタンをクリックする必要があるためLoop時は結構面倒ですし、Debug.Printでしたら本番で消し忘れたとしても表面的には問題なさそうです。

<ローカルウィンドウ>
プログラムコード中の変数やプロパティの値を1ステップごとに調べる場合に使用します。コード内に特別な設定や登録をすることなく、現時点で進んでいるSUBモジュール内の変数等の値が表示されます(親や子モジュールは表示されません)。

<ウォッチウィンドウ>
プログラムコード中の変数やプロパティの値を調べる場合に使用します。 コード内で知りたい変数等の上でマウスの右ボタンを押し、「ウォッチ式に追加」をします。
イミディエイトウィンドウを似ていますが、ウォッチウィンドウはコードに追加することなく値を取り出せる反面、作業しているPCのExcelにしか設定できません。またウォッチ式に登録した変数等が全て並んで表示されますので、あまり多く登録するのは非現実的となります。

<オブジェクトブラウザ>
オブジェクトのプロパティやメソッド、イベント、定数など、どのようなライブラリがあるかを確認する画面です。