VBAからExcel関数(ワークシート関数)を呼び出すサンプルコードを紹介します。
仕様
以下の仕様に沿って、VBAからExcel関数の呼び出しを説明します。
- VBAのコードからExcelのAverage、Min、Max関数を呼び出します。
- Excelのvlookup関数を呼び出して、表2の会員情報を検索して表1出力します。

ソースコード
VBAからExcel関数を実行するには以下の記述を入力します。
Application.WorksheetFunction.ワークシート関数
よって、上記の仕様を満たすには以下のコードを記述します。
Option Explicit
Sub calc()
'平均年齢
Range("C8").Value = Application.WorksheetFunction.Average(Range("C3:C6"))
'最年長
Range("C9").Value = Application.WorksheetFunction.Max(Range("C3:C6"))
'最年少
Range("C10").Value = Application.WorksheetFunction.Min(Range("C3:C6"))
'会員
Dim i As Long
For i = 3 To Cells(Rows.Count, 1).End(xlUp).Row
'3行目~6行目までループしています
'1列目のIDをもとに表2を検索し、D列(4列目)に値を格納しています
Cells(i, 4).Value = Application.WorksheetFunction.VLookup(Cells(i, 1).Value, Range("G3:H6"), 2, False)
Next
End Sub
実行
実行手順
Alt + F8でマクロの一覧から、先ほどのマクロ関数を選択して実行します。

実行結果
マクロの実行ボタンを押下すると、緑の部分に実行結果が出力されます。
- 平均年齢~最年少に数値が出力されています。
- 表1.会員に表2の会員情報が出力されています。

参考情報
環境
下記の環境で作成・実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS | Windows11 |
2 | Excel | Excel2016 |
以上です。
ただ、セル内に関数が入力されるわけではないことには注意が必要です。
※上記の例ですと平均年齢にaverage関数は入力されていません。
あくまでaverage関数の実行結果が格納されます。