Excel VBA でデバッグを行う際に、イミディエイトウィンドウ(Immediate Window)を活用すると、変数の値や処理の進行状況を手軽に確認できます。Debug.Print を使うことで、メッセージボックス(MsgBox)を使わずにデータを出力し、スムーズにデバッグ作業を行えます。
本記事では、イミディエイトウィンドウへの出力方法と活用例について解説 します。
目次
イミディエイトウィンドウとは?
イミディエイトウィンドウ(Immediate Window) とは、VBA の開発環境(VBE)内で リアルタイムに変数の値を確認したり、コードの一部を実行できるウィンドウ です。
主な用途
✅ Debug.Print を使って 変数の値を出力
✅ ? 変数名 を入力して 現在の値を確認
✅ 1行の VBA コードを手動で実行
✅ ループの中の処理結果をリアルタイムでチェック
イミディエイトウィンドウの表示方法
イミディエイトウィンドウが表示されていない場合は、以下の方法で開きます。
・ショートカットキーで開く
Ctrl + G
✅ 最速でイミディエイトウィンドウを開く方法!
・メニューから開く
- Excel で 「Alt + F11」キー を押して VBA エディタ(VBE)を開く
- 「表示」メニューをクリック
- 「イミディエイトウィンドウ(Immediate Window)」を選択
✅ これでイミディエイトウィンドウが表示される!
Debug.Print を使って出力する方法
イミディエイトウィンドウへの出力には、Debug.Print を使用します。
・文字列を出力
Sub TestDebugPrint()
Debug.Print "Hello, VBA!"
End Sub
✅ イミディエイトウィンドウの出力結果
Hello, VBA!
📌 メッセージボックス(MsgBox)を使わずに確認できる!
・変数の値を出力
Sub ShowVariableValue()
Dim myValue As Integer
myValue = 100
Debug.Print "変数の値: " & myValue
End Sub
✅ イミディエイトウィンドウの出力結果
変数の値: 100
📌 変数の値を手軽に確認できる!
・数値や計算結果を出力
Sub CalculateValues()
Dim a As Integer, b As Integer
a = 10
b = 5
Debug.Print "a + b = " & (a + b)
Debug.Print "a * b = " & (a * b)
End Sub
✅ イミディエイトウィンドウの出力結果
a + b = 15
a * b = 50
📌 計算結果をリアルタイムでチェック!
・配列の値を出力
配列の各要素を Debug.Print で出力する方法です。
Sub ShowArrayValues()
Dim arr() As String
arr = Split("Apple,Banana,Cherry", ",")
Dim i As Integer
For i = LBound(arr) To UBound(arr)
Debug.Print "配列の値: " & arr(i)
Next i
End Sub
✅ イミディエイトウィンドウの出力結果
配列の値: Apple
配列の値: Banana
配列の値: Cherry
📌 ループの中で Debug.Print を使うと、配列の値を簡単に確認できる!
・ ?(クエスチョンマーク)を使って手動で出力
イミディエイトウィンドウでは、? を使って 変数の現在値を手動で出力 することもできます。
・手動で変数の値を確認
Sub TestImmediate()
Dim num As Integer
num = 200
Stop ' ← ここで実行を一時停止
End Sub
イミディエイトウィンドウで以下を入力
? num
✅ 出力結果
200
📌 VBA の実行を一時停止し、変数 num の値を直接確認できる!
・ワークシートの情報を取得
? ActiveSheet.Name
✅ アクティブなシートの名前を即時表示!
? Range("A1").Value
✅ セル A1 の値を直接確認!
イミディエイトウィンドウの活用例
・最終行を取得
Sub GetLastRow()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print "最終行: " & lastRow
End Sub
✅ 最終行の位置を出力して確認!
・すべてのシート名を取得
For Each ws In Worksheets: Debug.Print ws.Name: Next
✅ ブック内のすべてのシート名を一覧表示!
【VBA】アクティブシートの指定・変更・シート名取得・値参照
・ループの処理結果をリアルタイムで確認
For i = 1 To 5: Debug.Print "ループの値:" & i: Next
✅ 1 から 5 までの値が表示される!
Debug.Print のメリット
| メリット | 説明 |
|---|---|
| デバッグが簡単 | 変数の値や計算結果を手軽に確認できる |
| 即時実行可能 | ? を使ってコードを手動で実行できる |
| コードの修正不要 | MsgBox を使わずにデバッグできる |
| ループや配列のチェックが容易 | For ループや Array の値を簡単に出力できる |
まとめ
💡 イミディエイトウィンドウの使い方
✅ ショートカットキー(Ctrl + G)で開く
✅ Debug.Print を使って変数の値を確認
✅ ? 変数名 で手動で値を出力
✅ 1行のVBAコードをイミディエイトウィンドウで実行