思考酒後

自分に入ってきた情報を定着、深化するために文章化

MENU

【Excelマクロ】配列の中から最小値を抽出するマクロ


 こんにちは、masaです。

 今日は自分用のメモとして「配列の中から最小値を抽出するマクロ」についてまとめておこうと思います。

 

 Excel関数では=min(範囲選択) で一瞬で終了するのですが、マクロの内部データとして配列の中から最小値を抽出しておく必要があったので、試行錯誤した次第です。

 

 

 

配列の中から最小値を抽出するマクロ

Sub 最小値判定()

 

’minが最小値
Dim i As Integer
Dim x As Integer
Dim Num(10) As Integer
Dim min As Single

 

’Num(1)~Num(10)を適当に設定

Num(1) = 10
Num(2) = 3
Num(3) = 4
Num(4) = 2
Num(5) = 6
Num(6) = 3
Num(7) = 8
Num(8) = 9
Num(9) = 3
Num(10) = 2

 

’minを恐らく最小値とならないであろう数値(ここでは100)と初期設定する。 

min = 100

 

'min(初期値100)とNum(i)を順番に比較していき、小さい方がminに上書きされる

For i = 1 To 10
If min > Num(i) Then
min = Num(i)
End If
Next i

 

'確認用にA1にminを出力する

Cells(1,1) =min

End Sub 

 

ポイント:minとNum(i)を比較して小さい方がmin(最小値)に上書きされる。

 配列は、順番に10,3,4,2,6,3,8,9,3,2となっています。minの初期値は100となっています。

 i=1のときは以下の処理をします。

f:id:masa_mn:20190316094337p:plain

 続いてi=2のときは以下の処理をします。

f:id:masa_mn:20190316094556p:plain

 続いてi=3のときも同様です。

f:id:masa_mn:20190316094750p:plain

 minと配列の比較を、配列に入っている数字の回数だけ繰り返すことで最小値を抽出することができます。

 

▼そもそもの配列についてはこの記事で書いています。

www.think-and-try.xyz

 

▼同じようなことですが、最大値の抽出についても書いています。

www.think-and-try.xyz