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

こんにちは~。「デザインもできるシステムエンジニア」のあつもり(@atumori17)です。今日も業務効率化のためにプログラムを活用できないかを考えています。

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

今回は一歩進んでイミディエイトウィンドウを使ってデバッグする方法を紹介していきます。

レクタングル大336×280

イミディエイトウィンドウで何ができるのか?

まずはイミディエイトウィンドウを使うと何ができるのか?を説明しますね。

  1. プログラムの中にある変数や関数の戻り値を表示させる
  2. 関数の実行結果を見る
  3. 計算をする
  4. エクセルブックやシートなどのプロパティを見る

というようなことができちゃいます。イミディエイトウィンドを表示させる方法は、

メニューバーから「表示」→「イミディエイトウィンドウ」または

Ctrl + Gキーです。

それでは順番に説明していきます。

Debug.Printを使って変数や関数の戻り値を表示させる

Debug.Printを使うと、プログラムの中にある変数や関数の戻り値を表示させることができます。

下の例は前回の記事で使用したプログラムです。エクセルシートの1行目から10行目のセルに、行番号に10を掛けた数を入れていくいうものです。

変数yとAddNumberの戻り値にどのような値が入っているのかを知りたかったので

Debug.Print y

Debug.Print addNumber(y)

としました。

このプログラムを実行すると、イミディエイトウィンドウにDebug.Printのあとに書かれた変数の中身が表示されます。

変数yが増えると、関数AddNumberの戻り値が増えているのがわかりますね。

このようにDebug.Printを使うと、変数の変化の過程がわかるのでとっても便利なんですね。

プログラムコードの中にDebug.Printを書かなくても、デバッグ中にイミディエイトウィンドウに?+変数を入力すれば、その変数に何が入っているかを見ることができます。

関数の実行結果を見る

続いて関数の実行結果を見る方法です。

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

?addNumber(123)

と入力してEneterキーを押すと

1230という数字が返ってきました。

これは関数addNumberに引数123を入れて、戻り値が1230だったことを表しています。このようにイミディエイトウィンドウの中で関数を実行してその結果を見ることができます。わざわざプログラムを実行しなくても、関数の動きが見れるのでとっても便利ですよ。

続いて

?right(“あああいいい”,3)

と入力してEneterキーを押すと

いいいとう文字列が返ってきました。

これはVBAで使える標準関数であるRightの実行結果です。あああいいいの右から3文字を抜きだした結果というわけですね。

このようにVBA標準関数の動きも見れちゃうんですね。この関数どうやって使うんだっけって時に試しに動きを見てみるという使いかたができます。

計算をする

イミディエイトウィンドウを使えば計算もできます。

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

?5*5*5

と入力してEnterキーを押すと

125という答えが返ってきます。

?10 mod 3

と入力してEnterキーを押すと

1という答えが返ってきます。modは割り切れないぶんの余り出してくれます。

エクセルブックやシートなどのプロパティを見る

エクセルブックやシートのプロパティを見ることもできます。

?thisworkbook.sheets(2).name

と入力すれば、2番目のシートの名前を取得できますし、

?thisworkbook.sheets(2).range(“B1”).value

と入力すれば、2番目のシートのB1セルに入っている値を取得できます。

エクセルブック名などを取得することもできます。

まとめ

いかがでしたか?今回はエクセルVBAでイミディエイトウィンドウを使ってデバッグする方法を紹介しました。イミディエイトウィンドウはデバッグだけでなく、色々な使いかたができることがわかっていただけたと思います。

使い始めると手放せない便利な機能なのでぜひ試してみてください。

レクタングル大336×280
レクタングル大336×280

シェアする

  • このエントリーをはてなブックマークに追加

フォローする