最大と最小
VBAを使い始めて間もなく困ることは
VBAで最大と最小をどうやって求めるか?
だと思います。
数式に使うMAXとMINのような関数が
当然、VBAの関数にもあると思っていました。
しかし実際にはありません。
最大と最小をVBAで求めるには、
ワークシート関数を使います。
ワークシート関数とは
数式に使うMAXとMINのような関数です。
すべてのワークシート関数がVBAで使えるわけではありません。
リストはVBAヘルプを参照してください。
MAXというワークシート関数をVBAで使うには次のようにします。
Application.WorksheetFunction.Max(1, 4, 7, 9)
上の値は9です。Double型になります。
引数には33個まで指定できます。
引数は数だけでなくRangeや配列も指定できます。
Rangeを引数に指定した例:
Application.WorksheetFunction.Max(Range("A1:D10"))
Rangeを複数指定することもできます。
Application.WorksheetFunction.Max(Range("A1:B10"), Range("C1:D10"))
配列を指定した例:
Dim vData As Variant
vData = Array(1, 4, 2, 6, 7, 3, 10, 33)
Application.WorksheetFunction.Max(vData)
上の値は33です。
Rangeと同様に配列も引数に複数指定できます。
また配列、Range、数値の混合も可能です。
Application.WorksheetFunction.Max(vData, Range("A1:D10"), 1, 4, 7, 9)
最小を求める場合は
上記のMaxの箇所をMinに変更して使ってください。
最大と最小はグラフをVBAで作成するとき
軸の最大と最小を指定するのに便利です。
ただこの方法では
最大値/最小値の配列内での場所やセルの場所はわかりません。
| 固定リンク
コメント