【EXCEL VBA | イミディエイトウィンドウ】セルの範囲に種類の違う値や数式を一括で入力!

スポンサーリンク

セルの範囲を指定して、数式を一括入力!

イミディエイトウィンドウとは、VBA(Visual Basic for Application)を利用する時に使うVBE(EXCELなどに付属しているプログラムの開発環境のエディター/Visual Basic Editor)で使用することができる機能で、主にコードの実行結果を試すなど、デバッグする時に使うものです。

イミディエイトウィンドウにVBAコードを書いて、一気に処理する方法を説明しています!

今回は、「セルの範囲に種類の違う値や数式を一括で入力」方法です。

同じ値や数式を一括入力する方法はこちらをどうぞ

【EXCEL VBA | イミディエイトウィンドウ】同じ値をセルの範囲に一括入力する!
セルの範囲を指定して、同じ値を一括入力! イミディエイトウィンドウとは、VBA(Visual Basic for Application)を利用する時に使うVBE(EXCELなどに付属しているプログ続きを読む
【EXCEL VBA | イミディエイトウィンドウ】数式をセルの範囲に一括入力する!
セルの範囲を指定して、数式を一括入力! イミディエイトウィンドウとは、VBA(Visual Basic for Application)を利用する時に使うVBE(EXCELなどに付属しているプログラ続きを読む

↓イミディエイトウィンドウの立ち上げ方などはこちら

【EXCEL VBA】イミディエイトウィンドウを使う
イミディエイトウィンドウとは イミディエイトウィンドウとは、VBA(Visual Basic for Application)を利用する時に使うVBE(EXCELなどに付属しているプログラムの開発環続きを読む

使い方

前提:サンプルの筋トレ記録をします。

1回目:腕立て伏せ(10回)、腹筋(10回)

2回目:腕立て伏せ(15回)、腹筋(20回)

3回目:腕立て伏せ(25回)、腹筋(10回)

D列にはそれぞれ合計をする数式を入力します。

※そんなことする機会が無いという話は一旦置いといて下さい。

コード

ちゃんとしたコード

Range("B2:D4").Value = Evaluate("{10,10,""=sum(B2:C2)"";

15,20,""=sum(B3:C3)"";25,10,""=sum(B4:C4)""}")

省略コード

[B2:D4] = [{10,10,"=sum(B2:C2)";15,20,"=sum(B3:C3)";

25,10,"=sum(B4:C4)"}]

2つとも同じです。

入力画面

「Alt + F11」でVBEを開きます。イミディエイトウィンドウに上記のコードを入力して「Enter」で実行して下さい。

実行動画

結果画面です。

縦や横に同じものを入れたい場合は

最初はこういう状態になってる方が多いですかね。

D列とE列にそれぞれ、合計と平均を一気にいれてみましょう。

ちゃんとしたコード

Range("D2:E4").value = Evaluate("{""=sum(B2:C2)"",""=average(B2:C2)""}")

省略コード

[D2:E4] = [{"=sum(B2:C2)", "=average(B2:C2)"}]

2つとも同じです。区切りが「,」なので注意

※ちなみに、「value」でも「Formula」でもどっちでも良いですよ。

横の場合。

ちゃんとしたコード

Range("B5:C6").value = Evaluate("{""=sum(B2:B4)"";

""=average(B2:B4)""}")

省略コード

[B5:C6] = [{"=sum(B2:B4)";"=average(B2:B4)"}]

2つとも同じです。区切りが「;」なので注意

まとめ

まぁ、使う機会はないですね。。。笑

通常は、右辺に一つの値や数式を入れますが、こんかいの様に種類の違う値や数式を入れる場合は、右辺を配列にすることで可能になります。ちゃんとしたコードでは、Evaluateメソッドを使用して2次元配列を作成しています。

セルの範囲と2次元配列の大きさが一致してないと出来ないのでその点だけ注意して下さい!

オススメの本

VBAはこの本きっかけだったな~