3行マクロ講座 44回 ~すぐに役立つ3行マクロ

複数の数式を列にまとめて入力するマクロ 

試験の結果の一覧表があります。
この表の3列に対して合計、平均、順位の数式を入力したいと思います。
(サンプルファイルは、こちらから 3行マクロ44回サンプルデータ

複数の数式を列にまとめて入力する

範囲H3:J35に数式をまとめて入力します。
数式は通常と同じです。
合計を出すには、SUM関数で、=SUM(C3:G3)
平均を出すには、AVERAGE関数で、=AVERAGE(C3:G3)
順位を出すには、RANK関数を使い、=RANK(H3,$H$3:$H$35) のように入力します。
Evaluateメソッドを利用して、配列数式的な記述をすると簡単です。
左辺は、数式を入力したいセルの範囲
右辺は、Evaluateメソッドの引数に数式となります。
Sub 数式まとめて入力()
    Range("H3:J35").Formula = Evaluate("{""=SUM(C3:G3)"", ""=AVERAGE(C3:G3)"",""=RANK(H3,$H$3:$H$35)""}")
End Sub
    
マクロを実行すると、3列にそれぞれ数式が入力されます。

イミディエイトウィンドウで実行する

数式さえわかれば、オートフィルで複写しても同じですが、このマクロがすぐれているところは、やはり時短です。
正式に名前をつけたマクロを作成しなくても、数式を考えるときに、イミディエイトウィンドウに直接数式を入力してしまえば、それで実行できます。
このとき、イミディエイトウィンドウ内の記述では、範囲取得するのに、Evaluateメソッドのショートカットである[]使って簡略して書くことができるので、さらに短く以下のように記述することができます。
[H3:J35] = [{"=SUM(C3:G3)","=AVERAGE(C3:G3)","=RANK(H3,$H$3:$H$35)"}]
範囲を小文字で書いても同じです。
ぜひ、お試しください。今日の講義は以上です。お疲れ様でした。

スポンサーリンク
スポンサーリンク
おすすめコンテンツ