【マクロVBA】値が変化・設定した条件まで実行・停止!ウォッチウインドウの表示・使用方法

デバッグ操作

前回はローカルウインドウを使用して変数や配列内の文字・数値の確認方法を説明しました。
ローカルトウインドウについての記事はこちらから☟

【マクロVBA知識 30】変数や配列の文字・数値の現状が一覧で確認できるローカルウィンドウとは ► 独学エクセル塾 (dokugakuexcel.com)

今回はデバッグ時に設定した条件になる、または設定した変数が変化するまで実行する、
さらに変数の内容を監視することができるウォッチウインドウ
についてまとめています。

値が変化、指定条件位置でプログラム実行を停止できるので
デバッグでの確認がとても楽になります。
それでは見ていきましょう。




■ウォッチウィンドウの表示方法について

まずウォッチウィンドウの表示方法について紹介します。
ウォッチウィンドウは通常は隠れていますが、設定で表示することで
初めて使用することができます。

では詳しく見ていきましょう。

まず「表示」のメニューを選択してください。
そこから「ウォッチウィンドウ」を押せばウォッチウィンドウを表示することができます。

すると下部にウォッチウィンドウが表示されます。

今回はこの部分を使用する内容です。
それでは実際に活用してみましょう。

■ウォッチウィンドウを活用する

では実際にウォッチウインドウを活用してみましょう。

・変数の内容を確認する

まず変数の内容を確認する方法について紹介します。
ローカルウインドウでもイミディエイトウインドウでも変数の内容は確認可能ですが
目的に応じて使い分けてください。

イミディエイトウインドウ…その時のみの変数の内容を知りたい
ローカルウインドウ…変数や配列の文字・数値を常に監視したい
ウォッチウインドウ…設定した変数・配列のみ文字・数値を常に監視したい

変数や配列を沢山使用しており、指定した変数・配列のみ監視したい場合には今回の
ウォッチウインドウがとても役に立ちます。

では使用方法です。

下記の見本をご覧ください。

B列の数値1とC列の数値2を足した結果をE列に出力します。
プログラムはこのようになります。

Sub 数値1と2の和()

Dim A As Long

For A = 3 To 7 Step 1
Cells(A, 5) = Cells(A, 2) + Cells(A, 3)
Next A

End Sub

ここでは変数をAとしてFor Nextを用いて繰り返し処理を行います。
ではF8を1回押してプロシージャを実行してみましょう。

そして変数Aをクリックしたままウォッチウインドウまでドラッグ&ドロップをして
Aをウォッチリストに追加します。

またはウォッチウインドウで右クリックを押し、「ウォッチ式の追加」を押します。

すると「ウォッチ式の追加」のメニューが表示されるので
変数の「A」を式に入力します.
今回は変数の監視をしたいので「ウォッチの種類」を「式のウォッチ」を選択します。

ではウォッチウインドウを見てみましょう。

さらに実行していくと・・・

実行に合わせて「値」も変化していることがわかります。
これで変数の監視ができますね。

・指定した条件になるまで実行する・停止させる

次はFor Nextなどの繰り返し処理でとても便利な機能である指定した条件になるまで実行する方法について紹介します。
先ほどの見本を見てみましょう。

今回はE5の数値1と数値2の和を求めた後に止まるように設定してみましょう。
プログラムは先ほどと同様に下記のプログラムを使用します。

Sub 数値1と2の和()

Dim A As Long

For A = 3 To 7 Step 1
Cells(A, 5) = Cells(A, 2) + Cells(A, 3)
Next A

End Sub

ではウォッチウインドウを使用してみましょう。
変数はAです。そして今回は5行目の「E5」の処理を終えた後に
プログラムを停止させたいので「A=6」と入力します。
そしてウォッチの種類を「式がTrueの時に中断」を選択します。
これにより「A=6の式が成り立った場合にプログラムを停止」することになります。

では実行してみましょう。

「E5」の処理を終え、Aが6になったので
式が成立したため、プログラムを中断してくれました。

・式・変数が変化するまで実行する・停止させる

先ほどは「式がTrueの時に中断」を選択しましたが
その下に「式の内容が変化したときに中断」という項目があります。

では下図をご覧ください。

式は「A」になってますね。
今回はウォッチ式の種類を「式の内容が変化したときに中断」にしました。

これにより変数「A」が変化するたびに止まってくれます
条件に当てはまる処理のみ停止して確認したい時などに
活用できそうですね。

■ウォッチ式の追加・削除

ウォッチ式については複数設定することもできますし削除することもできます。

追加する場合はウォッチウインドウで右クリックを押して
「ウォッチ式の追加」を押せば追加することができます

対称にウォッチ式を削除したい場合は削除したいウォッチ式を選択し、
右クリックを押します。メニューに「ウォッチ式の削除」があるので選択すると
選んだウォッチ式を削除することができます。

⬛︎公式の説明

わかりやすいように説明したため公式と使用する語句が異なりますが
マイクロソフト公式の説明については下記のリンクを参照してください。☟

[ウォッチ] ウィンドウ | Microsoft Learn

■まとめ

いかがだったでしょうか。
式が変化したときに停止させる方法や式がTrueになったときに停止させる方法は
デバッグにはとても便利です。

なかでも繰り返し処理での途中停止はとても役に立ちます。

ぜひ今回の記事を活用してデバッグ処理を効率よく実行してみてください。
それでは次回の記事でお会いしましょう。

コメント