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

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

Excel VBA でデバッグを行う際に便利なのが イミディエイトウィンドウ です。
イミディエイトウィンドウを使うと、変数の値の確認やコードの一部の実行が簡単にできるため、デバッグ作業を効率化できます。

本記事では、イミディエイトウィンドウの表示方法、基本的な使い方、活用例 について解説します。

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

イミディエイトウィンドウ(Immediate Window) とは、VBA の開発環境(VBE)で変数の値を確認したり、コードを手動で実行したりできるウィンドウ です。

主な用途

✅ 変数の値をリアルタイムで確認
✅ コードの一部分を手動で実行
Debug.Print を使ってデバッグ情報を表示
✅ 関数やメソッドの動作を確認

📌 イミディエイトウィンドウを使えば、VBA を実行せずに特定の処理を試せるので、開発スピードが向上!

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

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

VBA のエディタ(VBE)で、次のキーを押します。

Ctrl + G

すぐにイミディエイトウィンドウが開く!

・メニューから開く

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

📌 メニューから開けば、ウィンドウの非表示時でも確実に表示できる!

イミディエイトウィンドウの基本操作

・Debug.Print で変数の値を出力

イミディエイトウィンドウでは、Debug.Print を使うことで、変数の値を簡単に表示 できます。

【コード例: 変数の値を確認】

Sub TestDebugPrint()

Dim message As String
message = "Hello, VBA!"
Debug.Print message ' → イミディエイトウィンドウに出力

End Sub

【実行結果】(イミディエイトウィンドウ)

Hello, VBA!

コードを実行するたびに Debug.Print の結果がイミディエイトウィンドウに表示される!
メッセージボックス(MsgBox)を使わずにデバッグ可能!

・変数の値を手動で確認

イミディエイトウィンドウでは、現在の値を手動で確認することも可能 です。

手順

  1. VBA を一時停止(ブレークポイントまたは Stop を使用)
  2. イミディエイトウィンドウに変数名を入力し、Enter を押す

【コード例】

Sub TestImmediate()

Dim num As Integer
num = 100
Stop ' ← ここで実行を一時停止

End Sub

【イミディエイトウィンドウに入力】

? num

【結果】

100

コードを停止した状態で ? 変数名 と入力すると、現在の変数の値が確認できる!

・直接コードを実行

イミディエイトウィンドウでは、1行のVBAコードを直接実行 できます。

【例】

イミディエイトウィンドウに以下のように入力し、Enter を押します。

Range("A1").Value = "Test"

VBA の実行なしで、セル A1 に "Test" を入力できる!

【他の例】

MsgBox "Hello!"

メッセージボックスがすぐに表示される!

イミディエイトウィンドウの活用例

ワークシートの情報を取得

【例】現在のシート名を取得

? ActiveSheet.Name

アクティブなシートの名前が表示される!

最終行・最終列を取得

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

ブック内のすべてのシート名が一覧表示される!

ループを試す

For i = 1 To 10: Debug.Print "値:" & i: Next

1から10までの値をイミディエイトウィンドウに表示!

イミディエイトウィンドウのメリット

メリット説明
デバッグが簡単Debug.Print を使って変数の値を確認できる
即時実行可能1行のVBAコードを手動で実行できる
コードの修正不要MsgBox を使わずにデバッグできるので、コードを修正する必要がない
ループや条件分岐の動作確認実際にコードを実行せずに、イミディエイトウィンドウでテスト可能

まとめ

💡 イミディエイトウィンドウの使い方

ショートカットキー(Ctrl + G)で開く
Debug.Print を使って変数の値を確認
? 変数名 で手動で値を表示
コードを1行ずつ手動で実行できる

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