対象:Excel 2010, Excel 2013, Windows版Excel 2016
「エクセルvba evaluate sum」
という検索キーワードでのアクセスがありました。
Evaluateメソッドで、
SUM関数を使う方法を探していらしたのでしょうか。
WorksheetFunction.Sumではダメですか?
最初に考えていただきたいのは、WorksheetFunction.Sumではダメなのか、という点です。
[スポンサードリンク]
例えば、
MsgBox WorksheetFunction.Sum(Range("A1:A5"))
を実行すれば、A1:A5セルの合計が、メッセージボックスに表示されます。
Evaluateメソッドは、他の方法で実装できない、他の方法で実装するとデメリットが大きすぎるといった場合に使用を限定しておくほうが、私は得策だと考えています。
EvaluateメソッドでSUM関数を使うサンプルマクロ
その上で、EvaluateメソッドでSUM関数を使うなら、以下のようなSubプロシージャです。
Sub Evaluateメソッドのサンプル()
MsgBox Evaluate("SUM(A1:A5)")
End Sub
MsgBox Evaluate("SUM(A1:A5)")
End Sub
このSubプロシージャを実行すると、
MsgBox WorksheetFunction.Sum(Range("A1:A5"))
と同じように、A1:A5セルの合計がメッセージボックスに表示されます。
Evaluateメソッドの省略記法
Evaluateメソッドは、[ ] を使った省略した書き方が用意されているので、以下のような書き方もできます。
Sub Evaluateメソッドのサンプル2()
MsgBox [SUM(A1:A5)]
End Sub
MsgBox [SUM(A1:A5)]
End Sub
[ ] を使った書き方では
[SUM(A1:A5)]
のように、SUM関数部分を「"」(ダブルクォーテーション)で括る必要がなく、省略しない場合は、
Evaluate("SUM(A1:A5)")
と「"」で括らなければいけません。
[スポンサードリンク]
Home » エクセルマクロ・Excel VBAの使い方 » Applicationオブジェクト » EvaluateメソッドでSUM関数を