VBAでExcel関数を呼び出して使用する方法を説明します。
VBAで Excel関数を呼び出す
関数の呼び出し方
VBAでは Excel関数を呼び出して使うことができます。その方法は、ApplicationオブジェクトのWorksheetFunctionプロパティを利用します。
《 Excel関数の呼び出し》
Application.WorksheetFunction.関数名(関数の引数)
関数の呼び出し例
Excel関数を呼び出し、上記の表で何人分のデータが記載されているのかを確認します。
サンプルコード
Sub sample()
Dim num As Integer
num = Application.WorksheetFunction.CountA _
(Range(Cells(3, 2), Cells(10, 2)))
MsgBox (num & "人分のデータです。")
End Sub
エクセル関数をVBAで使用する利点
エクセル関数を使用する利点は、処理を書くのが楽になることです。例えば次のような感じです。
1)エクセル関数を利用しない場合
Excel関数を使わずにコードを書いた場合です。
サンプルコード
Sub sample()
Dim ave As Double
Dim dum As Double
Dim num As long
Dim col As long
col = 3
dum = 0
num = 0
Do Until Cells(col, 3) = ""
dum = dum + Cells(col, 3)
num = num + 1
col = col + 1
Loop
ave = dum / num
MsgBox ("身長の平均は" & ave & "cmです。")
End Sub
2) Excel関数を利用する場合
次に Excel関数を利用してコードを書いた場合です。
サンプルコード
Sub sample()
Dim ave As Double
ave = Application.WorksheetFunction.Average _
(Range(Cells(3, 3), Cells(10, 3)))
MsgBox ("身長の平均は" & ave & "cmです。")
End Sub
結果は先ほどと同様です。エクセル関数を利用した方がコードが短くすっきりします。
特段コードの書き方にこだわりがなければ、エクセル関数を利用した方がコードを書くのが楽になるのでお勧めです。
コメント