VBAで自動化 VBA一覧 セル・値の取得と貼り付け 配列 配列・データ操作

【VBA】Min関数で最小値を変数に取得・配列の最小値を取得する方法

Min関数を使用して、範囲や配列内の最小値を簡単に見つけることができます。特に大量のデータを扱う際に便利です。ここでは、基本的な使用方法から応用例までを解説します。

Min関数を変数と組み合わせて使用

Excel VBAにおけるMin関数は、Application.WorksheetFunction.Minを使用してアクセスします。
以下のコードは、セル範囲A1からA10までの中で最小の値をメッセージボックスで表示します。

Sub 最小値()

Dim minValue As Double
minValue = Application.WorksheetFunction.Min(Range("A1:A10"))
MsgBox minValue

End Sub

Max関数を配列で使用する方法

Min関数は、配列に対して使用すると配列内の最小値を取得しています。
配列の最小値をメッセージボックスで表示するサンプルコードです。

Sub 配列最小値()

Dim numbers() As Variant
numbers = Array(1, 2, 3, 4, 5)
Dim minValue As Double
minValue = Application.WorksheetFunction.Min(numbers)
MsgBox minValue

End Sub

複数の範囲から最小値を取得する方法

複数の範囲から最小値を見つけることもできます。
範囲A1:A10と範囲B1:B10の両方から最小値を検索し、メッセージボックスで表示するサンプルコードです。

Sub 複数範囲最小値()

Dim minValue As Double
minValue = Application.WorksheetFunction.Min(Range("A1:A10"), Range("B1:B10"))
MsgBox minValue

End Sub

扱うデータの注意点

・Variant(バリアント)型で対象データ(引数)の最小値を探す為、論理値および数値を表す文字列が計算の対象となります。
・配列またはセル範囲の参照を指定した場合、その中に含まれる数値だけが計算の対象となります。
・配列やセル範囲に含まれる空白セル、論理値、または文字列はすべて無視されます。
・数値がない場合は「0」が返されます。なぜなら戻り値はDouble(ダブル)型の為、規定値は「0」だからです。
・数値が文字列として保存され、セル左上の緑色の▼(エラー インジケーター)があると数値ではなく、文字として認識されます。

-VBAで自動化, VBA一覧, セル・値の取得と貼り付け, 配列, 配列・データ操作