【Excel VBA】VBEのイミディエイトウィンドウ]

こんにちは!大阪市を拠点に活動している『縁紡ぐ』の稲垣です。
SWELLを使ったホームページ制作や、Excel、ACCESS、RPAなどのシステム開発を行っています。
また、Excel、Word、Outlookの研修や、情報セキュリティ研修も行っています。身近なITの相談相手になりたいと思っています。
お気軽にお問い合わせください。
イミディエイトウィンドウ


ExcelのVBAエディター内にあるイミディエイトウィンドウ(即時ウィンドウ)は、デバッグ作業や簡単なコードの実行、変数の値の確認に非常に便利です。
今回は、イミディエイトウィンドウの基本的な使い方から応用的な使い方まで、詳細に説明します。
イミディエイトウィンドウの表示方法
まずは、表示方法です。
VBEの起動方法については、こちらを参照してください。








計算結果を表示



開発時に使うことはないかもしれませんが、計算結果を表示させ確かめるることができます
先頭に『?』をつけて計算式を入力し、Enterキーを押すと計算結果を確認することができます。
?2+2
4
?2*6
12
プロパティ(属性)値を表示



オブジェクトが持っているプロパティの値を確認することもできます。
?Worksheets.Count
7
使い方③変数の値を表示



変数に入っている値を確認することもできます。
Dim total as Integer
total = 100 + 100
?total
200
プログラムを実行しながら変数やプロパティ値を確認
プログラムをステップインして1行1行実行しながら、変数やプロパティ値がどうなっているかを見ることができます。


イミディエイトウインドウでは、エンターキーを押して確認した時の、値を確認はできますが、プログラムの処理を進めて変数やプロパティ値が更新されても、最新の値は表示されません。


でも、デバッグするときに、値がどう変わっているかを確認したい時ってありますよね。
デバッグ実行時にイミディエイトウインドウに値を出力を命令する方法



『Debug.Print』でイミディエイトウインドウに変数やプロパティの値を出力し確認することができます。
Sub 繰り返し処理()
Dim i As Integer
For i = 1 To 100
ActiveSheet.Range("A1") = ActiveSheet.Range("A1") + i
Debug.Print "セルの値は" & ActiveSheet.Range("A1")
Debug.Print "変数の値は" & i
Next i
End Sub


プロシージャ(引数なし)を実行して確認



引数がないプロシージャを呼び出して確認する方法です。
『プロシージャ名』を『入力しエンターキー』を押すだけです。
Public Sub 三角形の面積()
MsgBox "面積は" & (10 * 10) / 2
End Sub


プロシージャ(引数あり)を実行して確認



引数がある場合は、プロシージャ名の後に引数を指定することで確認ができます。
Public Sub三角形の面積(ByVal bottom As Integer)
MsgBox "面積は" & (bottom * 10) / 2
End Sub


複数の引数があるとエラーになる時があります。



これは、イミディエイトウインドウは引数をもつSubプロシージャに対応していないからです。こういう時の回避方法は、値を渡すためのプロシージャを作成し、それをイミディエイトウインドウから呼び出すことで、確認することができます。
Public Sub 三角形の面積(ByVal bottom As Integer, ByVal height As Integer)
MsgBox "面積は" & (bottom * height) / 2
End Sub
Public Sub 三角形の値を渡す()
Call 三角形の面積(20, 100)
End Sub


関数(引数なし)を実行して確認



関数の結果を表示するようには、?を先頭につけて関数名を指定すると確認することができます。
Public Function 三角形の面積() As Integer
三角形の面積 = (10 * 20) / 2
End Function


関数(引数あり)を実行して確認



引数の関数の結果を表示するようには、?を先頭につけて関数名の後に、引数を指定するようにすると確認することができます。
Public Function 三角形の面積(ByVal bottom As Integer, ByVal height As Integer) As Integer
三角形の面積 = (bottom * height) / 2
End Function




稲垣
- Excel、ACCESSでのシステム開発が得意
- ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
- 自家焙煎するほどのコーヒー好き
- 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
- 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
- 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
- お客様にとって本当に良いことかを第一に考える人
コメント