エクセルVBAでウォッチウィンドウを使ってデバッグする方法

こんにちは~。「デザインもできるシステムエンジニア」のあつもり(@atumori17)です。今回も業務効率化のアイデアやエクセルVBAなどのテクニックを発信していきます。

前回はローカルウィンドウを使ってのデバッグ方法を説明しました。

エクセルVBAのローカルウィンドウで変数の値を見ながらデバッグする方法
ローカルウィンドウとはプログラムコード内で使われている変数を全て表示してくれるウィンドウです。デバッグ時に変数にどんな値が入ったのかなどの動きがわかるためとっても便利です。VBA初心者がプログラムの動きの理解を深めるのにも役に立ちます。

今回はウォッチウィンドウを使ってデバッグする方法を紹介します。

レクタングル大336×280

ウォッチウィンドウとは

変数や式などをウォッチ式を登録しておくことで、デバック時にリアルタイムで変数の値やオブジェクトのプロパティなどを見ることができます。デバッグ時に変数の値などがどのように変化していくかがわかるのでとっても便利です。

ウォッチ式を表示させるにはメニューの「表示」から「ウォッチウィンドウ」をクリックします。

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

ウォッチ式を追加する

それではウォッチ式を追加していきましょう。

コードウィンドウからウォッチ式に追加したい式、または変数をドラッグして選択状態にします。右クリックして「ウォッチ式の追加」をクリックします。

「ウォッチ式の追加」が表示されたら「OK」をクリックします。

するとウォッチウィンドウに式が追加されます。

デバッグしてみる

ウォッチ式が追加できたましたので、ブレークポイントを置いてデバッグしてみます。このプログラムは行番号に10を掛けた数字をセルに入力するプログラムです。

ステップ実行していくと、ウォッチ式に追加した

プログラムの動きを理解しやすくするために変数yもウォッチ式に追加しています。yの値が1の時にCells(y,x).valueに「10」が入っているのがわかると思います。

さらにステップ実行を進めていくと変数yが2の時に、Cells(y,x).valueの値が「20」に変化したのがわかると思います。

このようにウォッチ式を使うことで、変数やプロパティの変化をリアルタイムで確認することができます。

配列の中身を見る

ウォッチウィンドウを使うと配列の中身を確認することができます。これはとっても便利な機能なので試してみください。

配列「arr」をドラッグして選択状態にして、右クリックで「ウオッチ式の追加」をクリックしました。

ウォッチウィンドウに配列arrが追加されていますね。

この状態でブレークポイントを置いてデバッグを実行すると、arrの左に「+ボタン」が表示されます。これをクリックします。

すると配列の中身が表示されます。配列arrに値を入れる処理までステップ実行できていないので、まだ値が入っていません。

ステップ実行を進めていくと配列に値が入っていくのがわかると思います。

配列の中身を見るのはデバッグをするうえで必須といってもいいので、ぜひ覚えておきましょう。

オブジェクトのプロパティを表示させる

ウォッチ式のもうひとつ便利な使い方として、オブジェクトのプロパティを表示させるというものがあります。例えば今処理しているワークシートの名前を表示させる、なんてことができちゃいます。

それではさっそくやってみましょう。

コードウィンドウ上で右クリックして「ウォッチ式の追加」をクリックします。

「ウオッチ式の追加」が表示されたら、式のテキストボックスに

「activesheet.name」と入力し「OK」ボタンをクリックします。

ウォッチウィンドウにActiveSheet.Namaが追加されました。

デバッグを実行すると値の列に現在アクティブなシートである「sheet1」が表示されます。

ワークシートに限らず、ワークブックの名前を表示させたりすることもできますよ~。とっても便利なのでぜひ試してみてください。

まとめ

いかがでしたか?今回はエクセルVBAでウォッチウィンドウを使ってデバッグする方法を紹介しました。

ウォッチウィンドウを使いこなすことで、デバッグ作業がとっても楽チンになります。ぜひ試してみてくださいっ。