複数の数式を列にまとめて入力
3行マクロ 44回
複数の数式を列にまとめて入力するマクロ
試験の結果の一覧表があります。
この表の3列に対して合計、平均、順位の数式を入力したいと思います。
(サンプルファイルは、こちらから 3行マクロ44回サンプルデータ)
Excelバージョン:
複数の数式を列にまとめて入力する
範囲H3:J35に数式をまとめて入力します。
![](gazo2013/mini/mini_macro-44_01.png)
![](gazo2013/mini/mini_macro-44_01.png)
数式は通常と同じです。
合計を出すには、SUM関数で、=SUM(C3:G3)
平均を出すには、AVERAGE関数で、=AVERAGE(C3:G3)
順位を出すには、RANK関数を使い、=RANK(H3,$H$3:$H$35) のように入力します。
![](gazo2013/mini/mini_macro-44_02.png)
合計を出すには、SUM関数で、=SUM(C3:G3)
平均を出すには、AVERAGE関数で、=AVERAGE(C3:G3)
順位を出すには、RANK関数を使い、=RANK(H3,$H$3:$H$35) のように入力します。
![](gazo2013/mini/mini_macro-44_02.png)
Evaluateメソッドを利用して、配列数式的な記述をすると簡単です。
左辺は、数式を入力したいセルの範囲
右辺は、Evaluateメソッドの引数に数式となります。
![](gazo2013/mini/mini_macro-44_03.png)
左辺は、数式を入力したいセルの範囲
右辺は、Evaluateメソッドの引数に数式となります。
Sub 数式まとめて入力() Range("H3:J35").Formula = Evaluate("{""=SUM(C3:G3)"", ""=AVERAGE(C3:G3)"",""=RANK(H3,$H$3:$H$35)""}") End Subマクロを実行すると、3列にそれぞれ数式が入力されます。
![](gazo2013/mini/mini_macro-44_03.png)
イミディエイトウィンドウで実行する
数式さえわかれば、オートフィルで複写しても同じですが、このマクロがすぐれているところは、やはり時短です。
正式に名前をつけたマクロを作成しなくても、数式を考えるときに、イミディエイトウィンドウに直接数式を入力してしまえば、それで実行できます。
![](gazo2013/mini/mini_macro-44_04.png)
正式に名前をつけたマクロを作成しなくても、数式を考えるときに、イミディエイトウィンドウに直接数式を入力してしまえば、それで実行できます。
![](gazo2013/mini/mini_macro-44_04.png)
このとき、イミディエイトウィンドウ内の記述では、範囲取得するのに、Evaluateメソッドのショートカットである[]使って簡略して書くことができるので、さらに短く以下のように記述することができます。
![](gazo2013/mini/mini_macro-44_05.png)
[H3:J35] = [{"=SUM(C3:G3)","=AVERAGE(C3:G3)","=RANK(H3,$H$3:$H$35)"}]範囲を小文字で書いても同じです。
![](gazo2013/mini/mini_macro-44_05.png)
ぜひ、お試しください。今日の講義は以上です。お疲れ様でした。