VBAからExcel関数(ワークシート関数)を呼び出すサンプルコード

VBA
記事内に広告が含まれています。

VBAからExcel関数(ワークシート関数)を呼び出すサンプルコードを紹介します。

仕様

以下の仕様に沿って、VBAからExcel関数の呼び出しを説明します。

  1. VBAのコードからExcelのAverage、Min、Max関数を呼び出します。
  2. 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の会員情報が出力されています。


ただ、セル内に関数が入力されるわけではないことには注意が必要です。

※上記の例ですと平均年齢にaverage関数は入力されていません。

あくまでaverage関数の実行結果が格納されます。

参考情報

環境

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows11
2ExcelExcel2016
環境一覧

以上です。