【EXCEL VBA | WorksheetFunctionプロパティ】VBAでワークシート関数を利用する

スポンサーリンク

VBAでワークシート関数を利用する

ワークシート上で利用している関数の多くは、VBAのコードの中でも利用することが出来ます(^o^)

今日は、VBA上でワークシート関数を利用するために使う、WorksheetFunctionプロパティについて紹介します!

WorksheetFunctionプロパティ

このプロパティは、メンバにワークシート関数を持っています。

LEFTとかVBAの命令にすでにあるものや、一部特別な関数は使えないものもありますが、SUM関数やCOUNTIFor関数などのおなじみの関数はたいてい使えます!

使いこなすことで、わざわざ自前でロジックを書かなくても済む場面もたくさんありますので、せっかく”VBA”するならぜひ使いこなしたいですね(^o^)

構文

WorksheetFunction.関数(引数)

関数(引数)の部分には、おなじみのワークシート関数とその引数を指定します。

ただし、VBAで利用するときは範囲指定などは、セルのアドレスを直接いれるのではなく、Rangeオブジェクトなどを指定します。

サンプル

次の表でWorksheetFunctionを使ってみましょう!

では、ワークシート関数のSUMIF関数を利用して名前がひらちんの得点合計を集計したいと思います。

コードは次のようになります。

集計結果はイミディエイトウィンドウに書き出しましょう。

Sub sample()

    Dim 結果 As Long
    
    結果 = WorksheetFunction.SumIf(Range("A2:A13"), "ひらちん", Range("C2:C13"))
    
    Debug.Print 結果

End Sub

簡単ですね。

WorksheetFunctionに続けて、SumIf(範囲, 条件, 合計範囲)と続けます。

VBAでワークシート関数を利用する時は、範囲指定をRangeオブジェクトで指定しますので、範囲は「Range("A2:A13")」、合計範囲は「Range("C2:C13")」としています。

実行動画はこちらです。

”ひらちん”の得点合計「47」がイミディエイトウィンドウに表示されました(^o^)