VBA入門
VBEの使い方:ウォッチ ウィンドウ

VBAの開発環境であるVBEの基本的な使い方
公開日:2019-10-04 最終更新日:2021-10-14

VBEの使い方:ウォッチ ウィンドウ


VBE(Visual Basic Editor)は、VBAで使われるコードエディタ、コンパイラ、デバッガ、その他の開発支援ツールが統合された開発環境です。


ここではウォッチ ウィンドウの使い方について説明します。


ウォッチ ウィンドウの表示

メニュー「表示」→「ウォッチ ウィンドウ」

VBA VBE ウォッチウィンドウ

初期設定では、コードウィンドウの下にドッキング表示されます。

VBA VBE ウォッチ ウィンドウ


ウォッチ ウィンドウとは

ウォッチ ウィンドウに変数や式を追加(ウォッチ式の追加)することで、
変数の中身を見られるようにしたり、条件を満たしたときや値が変わった時にVBAを中断させることができます。
中断したVBAは、F8(ステップイン)またはF5で継続できます。

ウォッチ式の追加は、VBA実行前でも実行途中でもいつでも追加できます。
ウォッチ式を追加した時点から有効となります。


「ウォッチ式の追加」の操作手順

ウォッチ式の追加でウォッチ ウィンドウへ式を追加すると、ウォッチウィンドに一覧登録されます。

VBA VBE ウォッチ ウィンドウ

ウォッチ式の追加の手順がいくつかあるので、順に説明します。

右クリックメニュー

コードウィンドウで右クリック
VBA VBE ウォッチ ウィンドウ

「ウォッチ式の追加」」ダイアログ画面が表示されます。

ウォッチ ウィンドウで右クリック
VBA VBE ウォッチ ウィンドウ

「ウォッチ式の追加」」ダイアログ画面が表示されます。


ツールバー「デバッグ」

変数または式を選択しておきます。
VBA VBE ウォッチ ウィンドウ

VBA VBE ウォッチ ウィンドウ
VBA VBE ウォッチ ウィンドウ クイック ウォッチ(Shift + F9)

「クイック ウォッチ」ダイアログ画面が表示されます。

VBA VBE ウォッチ ウィンドウ

「追加」クリックで「ウォッチ式の追加」」画面が表示されます。

変数または式が選択されていない場合は、エラーとなります。

VBA VBE ウォッチ ウィンドウ


ドラッグ&ドロップ

コードウィンドウから、ドラッグ&ドロップで追加できます。

VBA VBE ウォッチ ウィンドウ


ウォッチ式の削除・編集

ウォッチ ウィンドウの、当該の式を右クリック

VBA VBE ウォッチ ウィンドウ

ウォッチ式の編集
VBA VBE ウォッチ ウィンドウ

編集して「OK」で変更されます。

ウォッチ式の削除
ウォッチ ウィンドウから削除されます。


ウォッチ式の追加

VBA VBE ウォッチ ウィンドウ

対象
ウォッチ式の対象を指定します。
対象とは、
その変数・式が、どのモジュールのどのプロシージャーに含まれているものかという事です。

VBA VBE ウォッチ ウィンドウ

VBA VBE ウォッチ ウィンドウ

操作したモジュールの操作したプロシージャーが初期選択されているので、
ほとんどの場合は、そのままで良いはずです。

ドロップダウンで表示されるプロシージャーは、その下で選択したモジュールがリストされます。

ウォッチの種類
式のウォッチ
式(変数や式)の値が表示されます。
配列やオブジェクトでは、ドリルダウンでさらに詳細を見ることができます。

表示内容は、ローカルウィンドウと同様となります。
ローカルウィンドウとの大きな違いは、
実行中のプロシージャー以外の変数も見ることができることです。

VBA VBE ウォッチ ウィンドウ

同一の変数名も多々あり得るので、
そのような場合は、「対象」を良く確認する必要があります。

式が True のときに中断
式が条件を満たした(Trueになった)ときに、VBAが中断されます。

VBA VBE ウォッチ ウィンドウ

VBA VBE ウォッチ ウィンドウ

cnt = cnt + 2 これによって、cntの値が12になった時、
cnt>10がTrueとなり、VBAが中断します。

F5またはF8で継続できます。

式の内容が変化したときに中断
式の値が変化したときに、VBAが中断されます。

VBA VBE ウォッチ ウィンドウ

VBA VBE ウォッチ ウィンドウ

cnt(Long型)はプロシージャー開始時点で0で初期化されています。
値が、0以外になった時にVBAが中断します。

変数に同じ値を入れても中断しません、あくまで内容が変わった時に中断します。

変数ではなく、関数、数式、条件式等の式を指定した場合には、式の評価結果が変化した場合に中断します。

F5またはF8で継続できます。


ウォッチ ウィンドウの制限と注意

引数が必要なプロパティは表示されません
オブジェクトの中の、引数が必要なプロパティは表示されません。
例えば、RangeのAddressプロパティは、引数があるので表示されません。

VBA VBE ウォッチ ウィンドウ

同様にValueにも引数があるので表示されませんが、Value2は引数が無いので表示されています。
※引数が省略可能なものであっても、そのプロパティは表示されません。

VBA VBE ウォッチ ウィンドウ

Valueの引数について
VBA VBE ウォッチ ウィンドウ

引数のあるプロパティは、そのプロパティをウォッチ式として追加すれば見ることができます。

VBA VBE ウォッチ ウィンドウ


プロパティは常に評価されてしまいます
オブジェクトのプロパティをウォッチ式に登録すると、そのプロパティは常に評価されます。
つまり、そのオブジェクトを使用した時点で、ウォッチ式のプロパティが常に動作してしまうという事です。

これは、ウォッチ ウィンドウを表示していなくても、ウォッチ式が登録されていれば動作します。
従って、プロパティが動作することでプログラムの動作に影響を及ぼすようなものは登録する際に注意してください。


ウォッチ ウィンドウの最後に

ウォッチ ウィンドウはとても強力な機能です。
しかし、若干使い方が面倒な感じを受けてしまうかもしれません。

プロシージャーのローカル変数ならローカル ウィンドウで済みますし、
一度見るだけなら、イミィディエイト ウィンドウで済んでしまうからです。

VBAを中断させる方法としては、If+ブレークポイントやDebug.Assertを使う事でも同じことができます。
中断する方法としては、これらの方法を使う人の方が多いかもしれません。
しかし、デバッグ中に何度も確認する変数や、ある条件になった時に停止させたい場合はとても便利に使えます。

イミィディエイト ウィンドウローカル ウィンドウとともに、いつでも使えるようにしておきましょう。




同じテーマ「マクロVBA入門」の記事

VBEの使い方:VBE画面の全体説明
VBEの使い方:ツールのオプション設定
VBEの使い方:ツールバー
VBEの使い方:右クリックメニューとヘルプ
VBEの使い方:ショートカットキーとコード編集
VBEの使い方:イミディエイト ウィンドウ
VBEの使い方:ローカル ウィンドウ
VBEの使い方:ウォッチ ウィンドウ
VBEの使い方:オブジェクト ブラウザー
VBEの使い方:デバッグ


新着記事NEW ・・・新着記事一覧を見る

第5章:AI×VBAでつまづかない!トラブルシューティングとAIとの付き合い方 |生成AI活用研究(2025-05-20)
第4章:【事例で学ぶ】AIとVBAでExcel作業を劇的に効率化する! |生成AI活用研究(2025-05-20)
第3章:AIを「自分だけのVBA先生」にする!質問・相談の超実践テクニック|生成AI活用研究(2025-05-19)
第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)|生成AI活用研究(2025-05-18)
第1章:AIって一体何?あなたのExcel作業をどう変える?(AI超基本)|生成AI活用研究(2025-05-18)
AI時代のExcel革命:AI×VBAで“書かない自動化”超入門|生成AI活用研究(2025-05-17)
Geminiと100本ノック 23本目:シート構成の一致確認|生成AI活用研究(5月16日)
AIが問う出版の未来は淘汰か進化か:AIと書籍の共存の道とは|生成AI活用研究(2025-05-16)
Geminiと100本ノック 22本目:FizzBuzz発展問題|生成AI活用研究(5月15日)
すぐに使える!生成AI プロンプト作成 実践ガイド|生成AI活用研究(2025-05-15)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.ひらがな⇔カタカナの変換|エクセル基本操作
6.RangeとCellsの使い方|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.FILTER関数(範囲をフィルター処理)|エクセル入門
10.条件分岐(Select Case)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ