[VBA] イミディエイトウィンドウ

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

 初期設定で VBE (Visual Basic Editor) を起動すると、一番下に イミディエイトウィンドウ が表示されるはずです。もしなければ、下図のようにメニューの [表示] から [イミディエイトウィンドウ] を選択します (または Ctrl + G で表示させます)。

 VBA イミディエイトウィンドウ (immediate window)

イミディエイトウィンドウにコマンドを入力

 イミディエイトウィンドウ はコマンド入力画面として使用できます。
 先頭に「?」を付けて、式や関数を入力すると実行結果が表示されるので、手っ取り早く関数の挙動などを調べたいときに便利です。

 計算式を入力します:

? 5+2*10
25

 Now関数で現在の日付と時刻を表示します:

? Now()
2019/08/18 17:18:22

 LCase関数で大文字を小文字に変換します: 

? LCase("KOBATO")
kobato

 

イミディエイトウィンドウで変数の状態を確認

 プログラムの途中で変数の状態がどうなっているのか知りたい場面は結構あります。イミディエイトウィンドウ を使うと、メモリに保存されている値を表示させることができます。たとえば、次のようなコードを書いたとします。

Sub Increment_A()

 Dim x As Long, y As Long

 x = 10
 y = 20

 Stop

 x = x + 1
 y = y + 1

End Sub

 このプロシージャを実行すると、Stop ステートメントのところで処理が停止します。この段階の変数 x の値を知るには、イミディエイトウィンドウに次のように入力します。

? x
10

 比較演算子を使って、変数同士の大小関係などを調べることもできます。

? x > y
False

 プログラムの途中に Debug.Print を記述しておけば、実行途中で変数の値を出力しつつ処理を完遂します。

Sub Increment_B()

 Dim i As Long, x As Long

 For i = 1 To 5
  x = x + 1
  Debug.Print x;
 Next i

End Sub

1 2 3 4 5

 

イミディエイトウィンドウからマクロを実行

 イミディエイトからプロシージャを実行することができます。
 たとえば、次のようなプロシージャを作成したとします。

Sub Hi()

 MsgBox "Hi! My name is Kobato."

End Sub

 イミディエイトウィンドウに Hi と入力すると、メッセージボックスが表示されます。

Hi

 VBA イミディエイトウィンドウ (immediate window) 2

 とはいえ、マクロは [F5] キーで簡単に実行できるので、この機能を使用する機会はあまり多くないと思います。

関連コンテンツ

コメントをどうぞ

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください