【エクセルVBA】イミディエイトウィンドウはコマンド入力画面として使うと超便利

command-input

photo credit: wuestenigel Tastatur via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

エクセルVBAで快適にプログラミングするためのVBEのテクニックについて、シリーズでお伝えしています。

前回の記事はコチラです。

429 Too Many Requests

イミディエイトウィンドウの使い方の基本中の基本、Debug.Printについてお伝えしました。

さて、そのイミディエイトウィンドウなのですが、コマンド入力画面として使えるのも知っていましたか?

意外と知られていないかもなのですが、イミディエイトウィンドウでのコマンド入力は、VBAのプログラミングを快適にする上で強力な武器になります。

ということで、今回はエクセルVBAでイミディエイトウィンドウをコマンド入力画面として使う方法とそのテクニックについてお伝えします。

オススメの便利コマンドも紹介しますよ!

なお、本記事は以下Youtube動画と連動していますので、合わせてご覧くださいませ。

では、行ってみましょう!

スポンサーリンク

電卓みたいに計算式の結果を出力する

では、まずイミディエイトウィンドウをコマンド画面で使う基本中の基本、式の結果を表示する方法です。

式の結果を表示するには、イミディエイトウィンドウに

?

と書きます。クエスチョンマークの後に式、最後にEnterキーを押します。

例えばこんな感じです。

? 1+2+3+4

と入力してEnterすると

イミディエイトウィンドウに足し算の結果を出力

? 5^3

と入力してEnterすると

イミディエイトウィンドウにべき乗の結果を出力

となります。「^」はべき乗ですね。

このように?に続いて式を書けば、イミディエイトウィンドウは電卓のように使えます。

関数を使った結果を出力する

イミディエイトウィンドウでその結果を出力する「式」ですが、VBAの関数を使うこともできます。

例えば、Hex関数は指定した数値を16進数表記に変換する関数ですが

Hex(数値)

イミディエイトウィンドウに

? hex(3000)

と入力してEnterすると

イミディエイトウィンドウで16進数に変換

と3000という整数を16進数に変換することができます。

別の例として、日付に指定した期間を加算する関数としてDateAdd関数というものがあります。

DateAdd(間隔を表す文字列, 値, 日付)

例えば、今日から100日後を知りたいときには、イミディエイトウィンドウで

? dateadd("d",100,date())

と入力してEnterをします。ここでは、今日の日付を求めるDate関数も使っていますね。すると

イミディエイトウィンドウで日付の計算

このように、ズバっ!と求めることができるわけです。

変数の値を出力する

イミディエイトウィンドウに変数の値を出力するという使い方はデバッグの際にたいへんお世話になると思います。

例えば、サンプルとして以下のようなプログラムを用意しました。

Sub printTest()

Dim x As Long, y As Long
x = InputBox("整数を入力してください")
y = InputBox("もう一つ整数を入力してください")

Stop

End Sub

ユーザーからの入力を変数xとyに格納するだけのプログラムですが、Stopステートメントがありますので、以下のように、いったんそこでプログラムが停止しますよね。

StopステートメントでVBAプログラムが停止している

この止まっているときに、イミディエイトウィンドウに

? x 

とか

? y

などと入力してEnterをしますと

イミディエイトウィンドウで変数の値を出力

このように、ストップしている時点の変数の値が出力されます。

単体の変数ですが、それも「式」ですからね。出力できるのです。

ちなみに、例ではStopステートメントでプログラムを止めていますが、もちろんブレークポイントを設置して止めているときや、ステップ実行をしているときも同じようにできます。

条件式の結果を表示する

あと、ちょっと面白い使い方として、イミディエイトウィンドウに条件式の値を表示するという使い方もあります。

例えば、前述の例でStopで止まっているときに

? x>y

とか

? x<y

などと入力してEnterをしますと

イミディエイトウィンドウで条件式の値を出力

と出力されます。

If文の評価をしたいときなどにワリと使えるテクニックだと思います。

プロパティの値を表示する

別のオススメの使い方としては、イミディエイトウィンドウに各種プロパティを表示することです。

これはかなり応用が利くテクニックで、使いこなすとそうでないとでは、VBA作業の効率がかなり違ってきます。

現在のExcelファイルのパスを知りたいならば

? ThisWorkbook.Path

特定の列の列番号を知りたいのであれば

? Range("p1").Column

現在選択されているセル範囲のアドレスを知りたいのであれば

? Selection.Address

など、それぞれイミディエイトウィンドウに入力してEnterをすればよいわけです。

イミディエイトウィンドウでプロパティの値を出力

これ、いちいちウィンドウを切り替えたりし調べることを考えると、ものすごい効率いいですよね?

ささっと Ctrl + G でイミディエイトウィンドウに移動してコマンド入力、そしてEnterです。

なお、イミディエイトウィンドウでも自動メンバー表示の機能が効きますので、ぜひ Ctrl + Space もご活用下さい。

429 Too Many Requests

まとめ

以上、エクセルVBAでイミディエイトウィンドウをコマンド入力画面として使うテクニックについてお伝えしました。

クエスチョンマークとの組み合わせで、数式、関数、変数、条件式、プロパティなど、あらゆる「式」の結果を表示することができますね。

すぐに調べたいときなどに大変便利ですので、ぜひご活用下さい。

どうぞお楽しみに!

連載目次:エクセルVBAの作業効率&快適さを劇的に上げるVBEの使い方

エクセルVBAの作業では、プログラムとかその書き方に目が行きがちですが、その道具であるVBEの使い方ひとつで、コーディングやデバッグの作業効率が劇的に変わりますよ。そんなテクニックやノウハウをお伝えします。
  1. 【エクセルVBA】VBEの背景色や文字色を変更して画面を見やすくしよう
  2. 【エクセルVBA】最初っから知っておきたいVBEのショートカットキーまとめ
  3. 【エクセルVBA】VBEにコメントブロックのショートカットキーを設定する方法
  4. 【エクセルVBA】初心者にとっても便利なVBEの自動メンバー表示とその使い方
  5. 【エクセルVBA】初心者にオススメのVBEの7つのコード設定とその機能について
  6. 【エクセルVBA】初心者のうちから知っておくべきDebug.Printの使い方
  7. 【エクセルVBA】イミディエイトウィンドウはコマンド入力画面として使うと超便利
タイトルとURLをコピーしました