ここで、最小値を求めるプログラムの処理手順というのをまとめてみますと
(1) まず、最初のデータを初期値として最小値を入れる変数に代入する。
Range("D3").Select
s = ActiveCell.Value
(2) 次のデータのあるセルに移動して、そのセルのデータを取得する。
ActiveCell.Offset(0, 2).Activate
a = ActiveCell.Value
(3) 今現在の最小値と次のデータ(2)の大小を比較して(2)の方が小さかったら
最小値(変数 s )の中身を(2)のデータに入れ替える。
If a < s Then
s = a
End If
(4) 上記の(2)と(3)を、データ数 -1 回繰り返す。
For i = 1 To 3
・
・
・
Next i
と、このようになります。
もし、最小値でなく最大値を求めたいという場合には、上記(3)のIF文の符号
を反対にして、
If a < s Then ← 最小値を求める場合
If a > s Then ← 最大値を求める場合
としてあげればよいだけです。(その他に変更が必要な箇所はありません。)
それで、最初に今回はより応用が利くようにセル関数を使わずにプログラムを
組む。と言いましたが、このIF文の条件を色々と工夫して、例えば
If a < s And a > 100 Then
などとすれば、「いくら最安値であっても100円以下の野菜は(ちょっと安すぎ
て怪しいので)仕入れない。」などという特殊な条件も簡単に付加することが
できるという具合です。
無料メルマガの登録は、▼こちらから▼
「Go! Go! エクセルマクロをはじめよう!」