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

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

Excel VBA でデバッグを行う際に、イミディエイトウィンドウ(Immediate Window)を活用すると、変数の値や処理の進行状況を手軽に確認できます。
Debug.Print を使うことで、メッセージボックス(MsgBox)を使わずにデータを出力し、スムーズにデバッグ作業を行えます。

本記事では、イミディエイトウィンドウへの出力方法と活用例について解説 します。

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

イミディエイトウィンドウ(Immediate Window) とは、VBA の開発環境(VBE)内で リアルタイムに変数の値を確認したり、コードの一部を実行できるウィンドウ です。

主な用途

Debug.Print を使って 変数の値を出力
? 変数名 を入力して 現在の値を確認
✅ 1行の VBA コードを手動で実行
✅ ループの中の処理結果をリアルタイムでチェック

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

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

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

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

Ctrl + G

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

・メニューから開く

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

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

Debug.Print を使って出力する方法

イミディエイトウィンドウへの出力には、Debug.Print を使用します。

【VBA】イミディエイトウィンドウをクリア(消去)する方法

・文字列を出力

Sub TestDebugPrint()

Debug.Print "Hello, VBA!"

End Sub

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

Hello, VBA!

📌 メッセージボックス(MsgBox)を使わずに確認できる!

【VBA】value 文字列として扱える場合とは

・変数の値を出力

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 を使うと、配列の値を簡単に確認できる!

【VBA】セルの値を変数配列に取得:ループ処理

・ ?(クエスチョンマーク)を使って手動で出力

イミディエイトウィンドウでは、? を使って 変数の現在値を手動で出力 することもできます。

・手動で変数の値を確認

Sub TestImmediate()

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

End Sub

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

? num

出力結果

200

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

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

? ActiveSheet.Name

アクティブなシートの名前を即時表示!

? Range("A1").Value

セル A1 の値を直接確認!

【VBA】セルの値を取得・範囲指定・ユーザ選択:変数・配列

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

・最終行を取得

Sub GetLastRow()

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

End Sub

最終行の位置を出力して確認!

【VBA】最終行番号を取得する方法

・すべてのシート名を取得

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コードをイミディエイトウィンドウで実行

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