No.006
ワークシート関数の答えをセルに出さないで取得する 《WorksheetFunction》
2003/2007/2010/2013
VBAでワークシート関数を使用する場合、セルに答えを出さずに、答えを取得して利用することができます。これはセルを使わなくてよいため大変便利です。
関数の結果の取得には WorkSheetFunctionプロパティ を使用し、次のような書式となります。
Application.WorkSheetFunction.ワークシート関数
WorkSheetFunctionプロパティで取得した値をあとで何度も利用する場合は、変数に代入します。
では、SUM関数の結果をWorkSheetFunctionプロパティで取得し、変数Xに代入し、その値をメッセージボックスに表示します。
Dim X As Integer
X = Application.WorksheetFunction.Sum(Range("A2:A4"))
MsgBox X
変数を使わない場合は、次のとおりです。
MsgBox Application.WorkSheetFunction.Sum(Range("A2:A4"))
ここで注意点です。
WorkSheetFunctionのあとドット(.)そして関数を書いていきますが、関数のセル参照は、RangeなどVBAに基づいた書き方となります。
最後に、WorkSheetFunctionプロパティは、残念ながら全ワークシート関数を使用することができません。
記述中にメンバーが表示されたときに目的の関数が表示されなかった場合は、使うことはできません。