Home > 即効テクニック > Excel VBA > 関数関連のテクニック > ワークシート関数をVBAで使用する(WorkSheetFunctionプロパティ)

即効テクニック

関数関連のテクニック

ワークシート関数をVBAで使用する(WorkSheetFunctionプロパティ)

(Excel 2000)
VBAからワークシート関数を呼び出すために用意されているWorkSheetFunctionオブジェクトを参照します。使用できるワークシート関数は限られています。詳しくは、ヘルプの「Visual Basicで使用ワークシート関数一覧」を参照してください。


● 詳細 ●

  構文  Object.WorksheetFunction     設定/取得

  設定項目              内容
  Object                Applicationオブジェクト [省略不可]

次のサンプルでは、Maxワークシート関数を用いて指定した範囲の最大値を求めます。


● サンプル ●

Sub WorksheetFunctionSamp1()

   MsgBox Application.WorksheetFunction.Max(Range("A1:D10"))  '---(1)
   MsgBox Application.Max(Range("A1:D10"))                    '---(2)

End Sub


(1)のステートメントは、セル範囲A1〜D10の値の最大値をメッセージボックスに表示します。これは、次のようにワークシートに数式を入力した結果と同じ内容になります。


=MAX(A1:D10)


なお、(2)のステートメントではWorkSheetFunctionオブジェクトの記述を省略していますが、こちらでも同様の処理を行います。

サンプルの(2)のステートメントのような記述が許可されているのは、Excel95との互換性を保つためです。Excel95では、(1)のステートメントの記述はエラーとなります。また、VLOOKUP関数などのエラー値を返す可能性のある関数でエラーが返された場合、(1)のステートメントの記述では、ステートメントそのものがエラーであると判断されてしまいます。
そのような関数を使用する際には、(2)のステートメントのような記述を行ってください。