はじめに
VBAで「アクティブセルの色をちょっと変えたい」「特定のプロパティの値を確認したい」といった、一度きりの簡単な操作のために、わざわざ Sub ... End Sub
のマクロを作成するのは面倒ですよね。
VBE(VBAエディタ)の「イミディエイトウィンドウ」は、Debug.Print
の出力先としてだけでなく、VBAコードを直接入力して、その場で実行できるという、非常に便利な機能を持っています。
この記事では、マクロを作成することなく、イミディエイトウィンドウを使って、ちょっとしたVBAステートメントを手軽に実行する方法を解説します。
イミディエイトウィンドウでコードを直接実行する方法
1. イミディエイトウィンドウの表示
まず、VBEのメニューから「表示」→「イミディエイトウィンドウ」を選択するか、ショートカットキー Ctrl + G
を押して、ウィンドウを表示させます。
2. コードの入力と実行
表示されたイミディエイトウィンドウに、実行したいVBAのコードを一行入力し、Enter
キーを押します。すると、そのコードが即座に実行されます。
サンプル例
例1: セルに値を入力する イミディエイトウィンドウに以下のように入力して Enter
を押すと、
Worksheets("Sheet1").Range("B2").Value = "テスト完了"
Sheet1
の B2
セルに “テスト完了” という文字列が入力されます。
例2: プロパティの値を確認する プロパティの値を確認したい場合は、?
(Debug.Print
の省略形)を使います。以下のように入力して Enter
を押すと、
VB.Net
? ActiveWindow.Zoom
イミディエイトウィンドウの次の行に、現在のアクティブウィンドウの表示倍率(例: 100
)が出力されます。
例3: メッセージボックスを表示する
MsgBox "こんにちは!"
と入力して Enter
を押せば、メッセージボックスが画面に表示されます。
どんなときに便利?
この「直接実行」機能は、以下のような場面で特に役立ちます。
- 簡単な動作テスト: 特定のメソッドやプロパティが、現在の状況でどう動くかをサッと試したいとき。
- プロパティの確認:
? ActiveCell.Address
のように、オブジェクトの現在の状態を素早く確認したいとき。 - 一時的な設定変更:
Application.ScreenUpdating = False
などを、マクロ実行前に手動で設定したいとき。 - マクロの個別実行:
Call MyMacro
のように、引数のないマクロを直接呼び出すことも可能です。
まとめ
今回は、VBAのイミディエイトウィンドウを使って、一行コードを直接実行するテクニックを解説しました。
Ctrl + G
でイミディエイトウィンドウを表示する。- 実行したいコードを入力し、
Enter
キーを押すだけでOK。 ?
を先頭に付けると、Debug.Print
と同じ意味になる。
この機能は、VBA開発における「ちょっとした試行錯誤」の時間を大幅に短縮してくれます。わざわざテスト用のマクロを作るまでもない簡単な確認作業は、イミディエイトウィンドウを電卓のように活用して、スマートにこなしましょう。