【VBA】VBAでエクセル関数を使う方法

Excel・VBA

VBAでエクセル関数を呼び出して使用する方法を説明します。

VBAでエクセル関数を呼び出す

関数の呼び出し方

VBAではエクセル関数を呼び出して使うことができます。その方法は、ApplicationオブジェクトのWorksheetFunctionプロパティを利用します。

《エクセル関数の呼び出し》
 Application.WorksheetFunction.関数名(関数の引数

関数の呼び出し例

あるクラスの身長と体重

エクセル関数を呼び出し、上記の表で何人分のデータが記載されているのかを確認します。

サンプルコード

Sub sample()
 Dim num As Integer

 num = Application.WorksheetFunction.CountA _
 (Range(Cells(3, 2), Cells(10, 2)))
 MsgBox (num & "人分のデータです。")

End Sub
マクロ実行結果

エクセル関数をVBAで使用する利点

エクセル関数を使用する利点は、処理を書くのが楽になることです。例えば次のような感じです。

身長の平均を求める

1)エクセル関数を利用しない場合

エクセル関数を使わずにコードを書いた場合です。

サンプルコード

Sub sample()
 Dim ave As Double
 Dim dum As Double
 Dim num As Double
 Dim col As Double

 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)エクセル関数を利用する場合

次にエクセル関数を利用してコードを書いた場合です。

サンプルコード

Sub sample()
 Dim ave As Double

 ave = Application.WorksheetFunction.Average _
 (Range(Cells(3, 3), Cells(10, 3)))
 MsgBox ("身長の平均は" & ave & "cmです。")

End Sub

結果は先ほどと同様です。エクセル関数を利用した方がコードが短くすっきりします。

特段コードの書き方にこだわりがなければ、エクセル関数を利用した方がコードを書くのが楽になるのでお勧めです。

コメント

タイトルとURLをコピーしました