構文
構文は以下の通りです。
解説
WorksheetFunctionは、ExcelVBAの組み込みオブジェクトで、Excelのワークシート関数をVBAから呼び出す際に使用します。AverageIf関数は、指定した条件に一致するセルに基づいて平均を計算する関数です。範囲は、平均を計算するために評価するセル範囲です。この範囲の中で、条件に合ったセルが見つかれば、そのセルに対応するデータを基に平均を計算します。条件は、平均を計算する際の条件を指定します。数値や文字列、比較演算子を使って条件を設定できます。平均範囲(オプション)は、条件が一致したときに、平均を計算する別のセル範囲を指定できます。もし指定しない場合は、最初の範囲で平均が計算されます。
プログラミング例
具体的なプログラミング例を紹介します。
(例1)特定の点数以上の平均を求める
Dim 点数範囲 As Range
Dim 平均値 As Double
' 点数範囲を設定
Set 点数範囲 = Range("A1:A10")
' 点数が70以上の平均を計算
平均値 = WorksheetFunction.AverageIf(点数範囲, ">=70")
' 結果を表示
MsgBox "70点以上の平均点は " & 平均値 & " 点です。"
End Sub
上記のプログラムは、セル範囲「A1:A10」の中で「70点以上」の点数の平均を求めます。WorksheetFunction.AverageIf関数に「>=70」という条件を指定することで、70点以上のセルの平均値を計算しています。
(例2)異なる範囲での平均を計算
Dim 点数範囲 As Range
Dim 名前範囲 As Range
Dim 平均値 As Double
' 点数範囲と名前範囲を設定
Set 点数範囲 = Range("B1:B10")
Set 名前範囲 = Range("A1:A10")
' 名前が「田中」の人の点数の平均を計算
平均値 = WorksheetFunction.AverageIf(名前範囲, "田中", 点数範囲)
' 結果を表示
MsgBox "田中さんの平均点は " & 平均値 & " 点です。"
End Sub
上記のプログラムは、セル範囲「A1:A10」の中で名前の範囲に「田中」という名前が含まれている場合、その行に対応するセル範囲「B1:B10」の点数を基に平均を計算します。AverageIf関数は、異なるセル範囲を使用して条件を評価し、別の範囲から平均を取得できることを示しています。
まとめ
AverageIf関数は、指定した条件に一致するセルに基づいて平均を計算する関数です。第1引数は条件をチェックする範囲で、第2引数に条件を指定します。第3引数(オプション)は、条件に一致するセルが見つかった場合の平均を計算する範囲です。