ワークシート関数の使い方
VBAでワークシート関数を使うには3つの方法があります。基本構文はコチラですっ。
Rangeオブジェクト.Formula = “=ワークシート関数”
WorkSheetFunction.ワークシート関数
Evaluate(“ワークシート関数”)
ワークシート関数の超ど定番であるSUM関数を例に取り上げて、3つの方法を順に見ていきたいと思います。では、まずは一番上からいきましょう。
1 2 3 |
Sub WorkFunc_Sum1() Range("D2").Formula = "=SUM(B2:B11)" End Sub |
左辺にあるFormulaプロパティはValueプロパティを使っても同じ結果となります。右辺を見てください。ダブルクオテーションの中にA1形式の関数式が書かれています。次に2番目の構文です。
1 2 3 |
Sub WorkFunc_Sum2() Range("D2").Value = WorksheetFunction.Sum(Range("B2:B11")) End Sub |
この構文では、セルを指定するのにRangeオブジェクトを用いています。WorkSheetFunctionプロパティを使う時には、Rangeオブジェクトを使ってセルを指定するところがポイントです。但し、ワークシート上で使える全ての関数をVBAから使用できるわけではありません。一部の特殊なワークシート関数やVBA関数と同じ機能を有するワークシート関数は使用することができません。そして、3つ目ですが、ApplicationオブジェクトとWorksheetオブジェクトが持つEvaluateメソッドを使う方法です。これは、引数に指定した”式”を評価して結果を返してくれる関数です。構文は次のようになります。
1 2 3 |
Sub WorkFunc_Sum3() Range("D2").Value = Evaluate("SUM(B2:B11)") End Sub |
このEvaluateメソッドを使えば、全てのワークシート関数をVBAで使うことができます。以上、『ワークシート関数の使い方』でございました ( ̄^ ̄)ゞ