VBAテクニック集 VBA一覧 デバッグ・エラー処理 実行時エラー

【VBA】イミディエイトウィンドウで変数の値を確認する方法

Excel VBAでプログラムを作成中に、変数の値を確認できるとデバッグ作業がスムーズになります。それができるのがイミディエイト ウィンドウです。

イミディエイト ウィンドウを使うと、コードの実行中に変数の値を簡単に確認でき、エラーの原因を特定できます。
本記事では、イミディエイト ウィンドウで変数を確認する方法と活用例について解説します。

イミディエイトウィンドウとは?

イミディエイト ウィンドウ(イミディエイト ウィンドウ)とは、VBA の開発環境(VBE)内で手動に変数の値を確認できるウィンドウです

主な用途

Debug.Printを使って変数の値を出力
? 変数名を入力して最新の値を取得
✅ 1行のVBAコードを実行しExcelを操作
✅ シート名や最終行などExcelの情報を取得

📌デバッグ作業が効率化され、プログラムの問題をすぐに発見できる!

イミディエイトウィンドウの表示方法

イミディエイトウィンドウが表示されていない場合は、以下の方法で開きます。

ショートカットキーで開く

Ctrl + G

最速でイミディエイトウィンドウを開く方法!

 ボタンを押す

  1. Excelで「Alt + F11」キーを押してVBAエディタ(VBE)を開く
  2. 「表示」メニューをクリック
  3. 「イミディエイトウィンドウ(イミディエイトウィンドウ)」を選択

これでイミディエイトウィンドウが表示される!

Debug.Printを使って変数の値を確認する

最も簡単な方法は、Debug.Print使って変数の値をイミディエイトウィンドウに出力することです

【VBA】イミディエイトウィンドウへの出力方法と活用例

・文字列や数値を出力

Sub TestDebugPrint()

Dim message As String
message = "Hello, VBA!"

Dim num As Integer
num = 100

Debug.Print message ' 文字列の出力
Debug.Print num ' 数値の出力

End Sub

イミディエイトウィンドウの出力結果

Hello, VBA!
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

📌計算結果をすぐに確認できるので、数式のバグを見つけやすい!

・ループの途中結果を出力

Sub LoopDebug()

Dim i As Integer
For i = 1 To 5

Debug.Print "ループの値: " & i

Next i

End Sub

イミディエイトウィンドウの出力結果

ループの値: 1
ループの値: 2
ループの値: 3
ループの値: 4
ループの値: 5

📌ループの動作確認が簡単にできる!

?を使って手動で変数の値を確認

イミディエイトウィンドウでは、?を使って変数の値を手動で確認できます。

・Stopを使って変数の値を手動で確認

Sub TestImmediate()

Dim num As Integer
num = 200
Stop ' ここでコードを一時停止

End Sub

📌コードを実行すると実行Stopで停止し、変数numの値をイミディエイトウィンドウで確認できる!

イミディエイトウィンドウで以下を入力

? num

出力結果

200

📌 VBA の実行を一時停止し、変数numの値を直接確認できる!

・配列の特定の要素を手動で確認

Dim arr(2) As String
arr(0) = "Apple"
arr(1) = "Banana"
arr(2) = "Cherry"

 

📌イミディエイトウィンドウで確認

? arr(1)

出力結果

Banana

📌配列の中身を簡単に確認できる!

イミディエイトウィンドウでExcelのデータを確認

・セルを表示する

? Range("A1").Value

セルA1の値を表示します!

・アクティブシートの名前を取得

? ActiveSheet.Name

最新のアクティブシートの名前を表示!

・最終行を表示する

Sub GetLastRow()

Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print "最終行: " & lastRow

End Sub

シートの最終行をイミディエイトウィンドウに表示!


まとめ

方法手順いいね
Debug.Printを使うDebug.Print 変数名実行時に変数の値を簡単に確認できる
?を使う? 変数名を入力するコードの一時停止中に手動で値を取得
ループ内のデータを確認Debug.Printをループ内に繰り返し処理の進行をチェック
Excel のデータを確認? Range("A1").Valueセルの価値をすぐに取得

💡 イミディエイトウィンドウを活用すると、Excel VBAのデバッグがずっとスムーズになります!

    -VBAテクニック集, VBA一覧, デバッグ・エラー処理, 実行時エラー