思考酒後

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

MENU

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


 こんにちは、masaです。

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

 

 Excel関数では=max(範囲選択) で一瞬で終了しますが、内部データとして持ちたい場合を想定して書いています。

   最小値を抽出するこちらの記事の派生です。

www.think-and-try.xyz

 

 

 

 

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

Sub 最大値判定()

 

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

 

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

Num(1) = 2
Num(2) = 7
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を恐らく最大値とならないであろう数値(ここでは0)と初期設定する。 

max = 0

 

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

For i = 1 To 10
If max < Num(i) Then
max = Num(i)
End If
Next i

 

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

Cells(1,1) =max

End Sub 

 

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

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

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

f:id:masa_mn:20190316100027p:plain


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

f:id:masa_mn:20190316100042p:plain


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

f:id:masa_mn:20190316100052p:plain



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

 

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

www.think-and-try.xyz