関数関連のテクニック
ワークシート関数を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)のステートメントのような記述を行ってください。