エクセルでは、エクセルシート上で使えるエクセル関数が多数用意されています。エクセルのバージョンにアップに伴い追加されていきますので、(下位)互換には注意が必要となる場合もあります。
ここでは、これらのエクセル関数をマクロ内で使用するサンプルを掲載しています。
スポンサーリンク
エクセルシート関数使用例
エクセルシート関数の使用例になります。ここでは、COUNTIF 関数を使用して、範囲内でセルの値が 1 のセルの個数を計算しています。

エクセルシート関数
VBA でエクセルシート関数を使用する
上記のエクセルシート関数を VBA で使用するには WorksheetFunction オブジェクトを使用します。
Dim ret As Integer
' エクセルシート関数を使用する
ret = WorksheetFunction.CountIf(Range("G3:I3"), "=1")
' 条件を満たすセルの個数を設定する
Range("J3").Value = ret
なお、WorksheetFunction オブジェクトを変数に代入して使用することもできます。大量に使用するときには、多少読みやすくなるかもしれません。
大量に使用することは、可読性を下げるような気はしますが。。
Dim ret As Integer
Dim wf As WorksheetFunction
' ワークシート関数オブジェクトを代入
Set wf = WorksheetFunction
' ワークシート関数を実行
ret = wf.CountIf(Range("G3:I3"), "=1")
' 条件を満たすセルの個数を設定する
Range("J3").Value = ret
Set wf = Nothing
なお、何人かの人は、「 ワークシート関数はエクセルシート上でのみ使え! 」 と言っていました。
上から目線のドヤ顔は、気分は悪くなりましたが一理あるなとも思いました。本人がどういうつもりで言っているのかはわかりませんが。