PR
関数

【Excel VBA】ワークシート関数を使用する

Excel VBAを使用してワークシート関数を実行する方法を2つほど紹介します。

例えば、「A1セルからJ1セル」の10個の数字の合計をSUM関数で算出して、
算出結果をA2セルに出力する場合は、Excelで表現すると下の図のようになります。

それでは、VBAで同じようにSUM関数を使用してみます。

1.WorksheetFunction オブジェクトを使用する場合

WorksheetFunction.Sum メソッドは、 Range オブジェクトを引数として受け取り、その範囲の値の合計を返します。

Sub ワークシートSUM関数()

Dim SUMResult As Double

SUMResult = WorksheetFunction.Sum(Range("A1:J1"))

Range("A2").Value = SUMResult

End Sub

2.Evaluateメソッドを使用する場合

Evaluate メソッドを使用することで、ワークシート関数を文字列として直接使用することができます。マクロの知識が浅い人がコードを見るときは、こちらの方が理解しやすかったそうです。

Sub ワークシートSUM関数2()

Dim sumResult As Double

sumResult = Evaluate("SUM(A1:J1)")

Range("A2").Value = sumResult

End Sub

ただし、Evaluate関数を使用する場合は数式が文字列であるため、完璧に入力する必要があるため、実際にコードを入力する場合は「WorksheetFunction オブジェクト」を使用する方法がおすすめです。

「WorksheetFunction オブジェクト」を使用する場合は、使用できる関数が画面に表示されて選択することが可能であり、関数の構成のヒントも表示されるので、Excelでの関数使用と同じイメージで関数の入力が行えます。
また、DAY関数等のVBA関数として存在するものはワークシート関数として使用できないため、使用可能な関数を選択することで、関数使用時のミスも回避できます。

WorksheetFunction オブジェクト使用時は使用可能関数を選択することができます
ワークシート関数の構成のヒントが表示されます

コメント