ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

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プロパティは、残念ながら全ワークシート関数を使用することができません。
記述中にメンバーが表示されたときに目的の関数が表示されなかった場合は、使うことはできません。

WorkSheetFunction
twitter hatena line pocket

関連ヘルプ

セル、セル範囲を参照する 《Range・Cells・Rows・Columns》
フォントの書式を設定する 《Font》
VBAで出てくる基礎用語について教えて
VBAでワークシート関数を使用する 《Value・Formula・FormulaR1C1》
セルに塗りつぶしの色を設定する 《Interior.Color》