ExcelVBA 最大値、最小値、平均値の求め方

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で最大値、最小値、平均値の求め方を解説しました。

ワークシート関数を使うことで、他にもいろんな関数を簡単に使うことができるたので、この機会に他の関数も確認してみてください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です