Developer

【ExcelVBA】イミディエイトウィンドウ2
2021.01.31
Lv1

【ExcelVBA】イミディエイトウィンドウ2

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

前回に引き続きイミディエイトウィンドウの便利な使い方を紹介していきます。
3つ目の使い方「任意のデータを出力する」を見ていきましょう。

任意のデータを出力する

イミディエイトウィンドウには任意のデータを出力することができます。これは他のプログラム言語では標準出力などと呼ばれるものと似ています。たとえば、Javaであれば「System.out.println」、PHPであれば「echo」や「print」です。簡易的な実行ログを残しておくという用途やデバッグ目的としても使用することができます。
ただし、このイミディエイトウィンドウへ出力したデータは保存しておくことはできませんので、システムログとして使用する場合には別の機能を使用しましょう。

プログラムの中からイミディエイトウィンドウへ出力するには「Debug.Print」命令を使用します。

Sub VBA基礎第15回_1()
    Dim i As Long
    
    For i = 1 To Worksheets.Count
        Debug.Print Worksheets(i).Name
    Next

End Sub
[015-【ExcelVBA】イミディエイトウィンドウ2-001.png]

これでイミディエイトウィンドウの3つの使い方は全て紹介しました。
どの機能も非常に有用なものですので、うまく使っていきたいところです。

暗黙の宣言

イミディエイトウィンドウではほとんどのプログラムを実行することが可能ですが、変数宣言を行うことができません。「Dim」ステートメントの命令文です。
先ほどのプログラムでは次の行が該当します。

Dim i As Long

ためしにイミディエイトウィンドウで実行してみましょう。

[015-【ExcelVBA】イミディエイトウィンドウ2-002.png]

このようなエラーが表示され実行できないことがわかります。
では、イミディエイトウィンドウでは新しい変数をしようすることができないのでしょうか?実はイミディエイトウィンドウでは変数の暗黙の宣言が行われており、変数宣言を行わなくても変数を使用することができるようになっています。

先ほどのプログラムの4行目にブレークポイントを設定し、実行してみましょう。

[015-【ExcelVBA】イミディエイトウィンドウ2-003.png]

このプログラムでは変数「i」しか宣言されていません。
では次のプログラムをイミディエイトウィンドウに入力してみましょう。

x = "暗黙の宣言"
msgbox x
[015-【ExcelVBA】イミディエイトウィンドウ2-004.png]

[015-【ExcelVBA】イミディエイトウィンドウ2-005.png]

変数「x」は宣言していませんが問題なく値を代入することができ、さらに2行目のプログラムで「MsgBox」を使って代入されている値が表示されていることが確認できるかと思います。
このように、イミディエイトウィンドウでは宣言をせずとも変数が使用することができます。

実は、ブレークポイントはどの命令文でも設定できるものではなく、「Dim」ステートメントの命令文ではブレークポイントを設定できません。
イミディエイトウィンドウに「Dim」ステートメントが使えないことと合わせて押さえておきましょう。

Stop命令

イミディエイトウィンドウ編の最後は「Stop命令」について紹介しましょう。
これまでプログラムを一時停止するにはブレークポイントを設定していましたが、同じことは「Stop命令」を使っても行うことができます。
先ほどのプログラムを使って試してみましょう。

5行目に「Stop」を追加します。

Sub VBA基礎第15回_2()
    Dim i As Long
    
    For i = 1 To Worksheets.Count
        Stop
        Debug.Print Worksheets(i).Name
    Next
    
End Sub

修正ができたらプログラムを実行してみましょう。

[015-【ExcelVBA】イミディエイトウィンドウ2-006.png]

「Stop」命令のところで黄色の網掛けになりました。これはブレークポイントでプログラムが一時停止したときと同じですね。
プログラムが一時停止すればデバッグの回で紹介した一時停止中の機能「ステップ実行」「継続実行」「停止」も同じように行うことができます。

まとめ

前回に引き続きイミディエイトウィンドウについて紹介しました。
イミディエイトウィンドウへはデータを出力することができ、動作ログやデバッグとして使用することができます。
前回紹介した2つの機能に加え、非常に有用でよく使うものになりますので、実際に動作を見ながら行ってみてください。

確認問題

以下の「○○○」に当てはまる文言を解答してください。

イミディエイトウィンドウの使い方は3つある
・任意のプログラムを実行する
・変数やプロパティの値、メソッドの戻り値を確認する
・任意の○○○を○○○する

これらの機能はプログラムの一時停止中にも行うことができ、一時停止にするにはブレークポイントを設定するか、○○○命令を使用する

答え

イミディエイトウィンドウの使い方は3つある
・任意のプログラムを実行する
・変数やプロパティの値、メソッドの戻り値を確認する
・任意のデータ出力する

これらの機能はプログラムの一時停止中にも行うことができ、一時停止にするにはブレークポイントを設定するか、Stop命令を使用する

次回は、ウォッチウインドウです。

 
 

連載目次リンク

ExcelVBA 入門 連載目次