Excel VBAで最大値、最小値、平均値を求めることは多々あります。
例えば、
・複数のデータから最大値を取得する
・複数のデータから最小値を取得する
・複数のデータの平均値を取得する
Excelで使用しているMax、Min、Average関数はVBAでも使用することができます。
今回は、Excelの関数を使用して、最大値、最小値、平均値を取得する方法について解説します。
- 最大値を取得する
- 最小値を取得する
- 平均値を取得する
Excel関数を使う方法
Excel関数をVBAで使う場合、WorksheetFunctionを呼び出す必要があります。
難しいことはなく、使用したいExcel関数の前に”WorksheetFunction”と記載するだけでOKです。
WorksheetFunction.関数名(引数)
最大値を取得する方法
最大値を取得する場合は、Max関数を使います。
基本的な書き方は、以下の通りです。
WorksheetFunction.Max(セル範囲)
実際のコードを見ていきましょう。
'=========================================================================================
'●Rangeプロパティを使った場合
'=========================================================================================
Sub test1()
Dim MaxValue As Long
MaxValue = WorksheetFunction.Max(Range("B2:B6"))
Cells(6, 5).Value = MaxValue
End Sub
'=========================================================================================
'●Cellsプロパティを使った場合
'=========================================================================================
Sub test2()
Dim MaxValue As Long
MaxValue = WorksheetFunction.Max(Range(Cells(2, 2), Cells(6, 2)))
Cells(6, 5).Value = MaxValue
End Sub
RangeとCellsプロパティの使い分けについて
Max関数を使用する範囲が固定であれば、Rangeプロパティだけで問題ありません。
しかし、Max関数を使用する範囲が可変であった場合に、Cellsプロパティを使うことで柔軟に対応することができます。
- 範囲が固定 → Range
- 範囲が可変 → Cells
参考
WorksheetFunction.Max メソッド (Excel)Microsoft
最小値を取得する方法
最小値を取得する場合は、Min関数を使います。
基本的な書き方は、以下の通りです。
WorksheetFunction.Min(セル範囲)
実際のコードを見ていきましょう。
'=========================================================================================
'●Rangeプロパティを使った場合
'=========================================================================================
Sub test1()
Dim MinValue As Long
MinValue = WorksheetFunction.Min(Range("B2:B6"))
Cells(6, 5).Value = MinValue
End Sub
'=========================================================================================
'●Cellsプロパティを使った場合
'=========================================================================================
Sub test2()
Dim MinValue As Long
MinValue = WorksheetFunction.Min(Range(Cells(2, 2), Cells(6, 2)))
Cells(6, 5).Value = MinValue
End Sub
参考
WorksheetFunction.Min メソッド (Excel)Microsoft
平均値を取得する方法
平均値を取得する場合は、Average関数を使います。
基本的な書き方は、以下の通りです。
WorksheetFunction.Average(セル範囲)
実際のコードを見ていきましょう。
'=========================================================================================
'●Rangeプロパティを使った場合
'=========================================================================================
Sub test1()
Dim AverageValue As Long
AverageValue = WorksheetFunction.Average(Range("B2:B6"))
Cells(6, 5).Value = AverageValue
End Sub
'=========================================================================================
'●Cellsプロパティを使った場合
'=========================================================================================
Sub test2()
Dim AverageValue As Long
AverageValue = WorksheetFunction.Average(Range(Cells(2, 2), Cells(6, 2)))
Cells(6, 5).Value = AverageValue
End Sub
まとめ
今回は、Excel VBAで最大値、最小値、平均値の求め方を解説しました。
ワークシート関数を使うことで、他にもいろんな関数を簡単に使うことができるたので、この機会に他の関数も確認してみてください。