こんにちは!ぐーです。
いつもブログをご覧いただき、ありがとうございます!
- 「コードを書いたけど、思った通りの値が入っているか不安…」
- 「エラーが出たけど、原因を探すのに30分もかかっちゃった」
そんな経験、ありませんか?
私も新人の頃は、メッセージボックス(MsgBox)を何個も仕込んで確認していました。でも、そのたびに「OK」ボタンを押してメッセージを閉じるのって、正直面倒ですよね。
そこで今回は、デバッグや確認作業を劇的に効率化してくれる「イミディエイトウィンドウ」の使い方をご紹介します!
イミディエイトウィンドウって何?
一言でいうと、「VBAと直接おしゃべりできるチャット欄」のような存在です。
わざわざマクロを最後まで実行しなくても、その場で計算をさせたり、変数の中身を覗いたりできる優れものです。まさに「Immediate(即時の)」という名の通り、投げかけた疑問にすぐ反応が返ってくるウィンドウです。
表示方法
VBE(Visual Basic Editor)の画面で、ショートカットキー [Ctrl] + [G] を押してみてください。
画面の下の方に、白いウィンドウが出てきましたか? それが入り口です。
1. その場で計算・確認(電卓代わり)
まずは、簡単な計算をさせてみましょう。
イミディエイトウィンドウに以下のように入力して、[Enter]キーを押してください。
※ ? は「表示して!」という意味の命令文です。
? 100 * 1.1
すぐ下の行に110と表示されれば成功です。
これを使えば、複雑な計算式が正しいかどうか、コードに組み込む前にサクッとテストできます。
2. 変数の中身を覗き見る(デバッグの王道)
これが、イミディエイトウィンドウの最も実践的なテクニックです。
コードの実行中に「今、変数 i には何が入っているんだろう?」と確認したいとき、Debug.Print を使います。
以下のコードを標準モジュールに貼り付けて、実行してみてください。
Sub テスト出力()
Dim i As Long
' 1から5までループして、イミディエイトウィンドウに出力
For i = 1 To 5
Debug.Print "現在は " & i & " 回目のループです"
Next i
End Sub
実行結果(イミディエイトウィンドウ):
現在は 1 回目のループです
現在は 2 回目のループです
...
MsgBoxのように処理をいちいち止める必要はありません。履歴として変数の動きが残るため、後から「あ、3回目で値がおかしくなっているな」と原因を特定しやすくなります。
3. 一行だけのコードを実行する
例えば、「テスト用に開いたブックを、保存せずに全部閉じたい」という時。いちいちそのためのSubプロシージャを書くのは面倒ですよね。
イミディエイトウィンドウなら、この1行を入れて[Enter]を押すだけで即座に実行されます。
Workbooks.Close
他にも、シートの非表示をパッと解除したり、特定のセルの値を書き換えたりと、ちょっとした操作を「使い捨ての命令」として実行するのに非常に便利です。
まとめ:地味だけど最強の味方
イミディエイトウィンドウは、コードの不調をいち早く察知する「プログラマーの聴診器」のような存在です。
- [Ctrl] + [G] で呼び出す。
- ? 計算式で答え合わせ。
- Debug.Printで変数のチェック。
まずは、今のコードに Debug.Print を1行足すところから始めてみましょう。
「ちゃんと動くかな?」という不安が、確かな「安心」に変わっていくはずです。
VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

コメント