「excel2013 vba 最大値・最小値」
「excel vba 最大値を求める office2013」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。
Excel VBA(Visual Basic for Applications)で、たくさんの数値の中から、最大値や最小値を取得するにはどうすればいいのかを探している方による検索です。
WorksheetFunction.Maxで最大値をWorksheetFunction.Minで最小値を取得できる
WorksheetFunctionオブジェクトを使って、表計算ソフトExcelの持つワークシート関数を利用すれば、Excel VBAからも簡単なコードで最大値や最小値を取得できます。
WorksheetFunctionオブジェクトのMaxメソッドを使えば、
最大値を求められ、WorksheetFunction.Minメソッドで、
最小値を求められます。
最大値・最小値を求めるサンプルマクロ
以下のマクロを実行すると、WorksheetFunction.Maxの引数に指定された数値の最大値「30」がメッセージボックスに表示されます。
MsgBox WorksheetFunction.Max(20, 30, 10)
End Sub以下のマクロを実行すると、WorksheetFunction.Minの引数に指定された数値の最大値「10」がメッセージボックスに表示されます。
MsgBox WorksheetFunction.Min(20, 30, 10)
End Subセル範囲から最大値を求めるサンプルマクロ
セル範囲から最大値・最小値を求めることもできます。
以下のマクロを実行すると、A1:A3セルに入力されている数値の最大値がメッセージボックスに表示されます。
Dim rng As Range
Set rng = Range("A1", "A3")
MsgBox WorksheetFunction.Max(rng)
MsgBox関数の引数に指定されたオブジェクト式「WorksheetFunction.Max(rng)」を、「WorksheetFunction.Min(rng)」にすれば、最小値が表示されます。
セル範囲を表すRangeオブジェクトを取得する、
Set rng = Range("A1", "A3")
の右辺は、さまざまな書き方をしてOKです。
Rangeプロパティの引数にCellsプロパティを組み合わせもいいですし、RowsプロパティやEntireRowプロパティも、ColumnsプロパティやEntireColumnプロパティも組み合わせられます。
配列変数から最大値を求めるサンプルマクロ
配列変数から最大値・最小値を求めることもできます。
Dim arr As Variant
arr = Array(20, 30, 10)
MsgBox WorksheetFunction.Max(arr)
2次元配列でもOKです。
Dim arr As Variant
arr = Range("A1", "C2")
MsgBox WorksheetFunction.Max(arr)
Home » エクセルマクロ・Excel VBAの使い方 » WorksheetFunction » Excel VBAで最大値・最小値を求める