アットウィキロゴ

配列データ内の最大値を求める

配列hairetuに"11","22","33","44","55"と入っているとします。

Private Sub CommandButton1_Click()
  Dim hairetu As Variant
  Dim i As Long
  Dim maxnum As Long

  hairetu = Array("11", "99", "22", "33", "44")
  maxnum = -1

  For i = 0 To UBound(hairetu)
    If hairetu(i) > maxnum Then
      maxnum = hairetu(i)
    End If
  Next i

MsgBox maxnum

End Sub

一行ずつ解説します。

Dim hairetu As Variant

変数hairetuをバリアント型で宣言します。あとでArray関数を用いて複数の要素を代入し、配列とします。

Dim i As Long
Dim maxnum As Long  

変数「i」はカウンタ変数です。
変数「maxnum」には配列に代入されると想定される数値より必ず”小さい”数値を入れておきます。


hairetu = Array("11", "99", "22", "33", "44")
maxnum = -1

バリアント型の変数「hairetu」にArray関数を用いて要素を代入することで、配列とします。
変数「maxnum」には代入した要素より小さい数値を代入します。

For i = 0 To UBound(hairetu)
  If hairetu(i) > maxnum Then
      maxnum = hairetu(i)
  End If
Next i  

UBound関数で配列「hairetu」の要素数を取得し、カウンタ変数「i」を”0~5”にします。

ループされる処理はIF文による条件分岐です。

最初、配列「hairetu」の一番最初の数値「11」が変数maxnumより大きいかが判断されます。

わざと小さい数値を代入しておいたわけですから、当然Trueとなります。

そこでIF文の処理の部分として、変数「maxnum」に、hairetu(0)の値である「11」が入ります。

次のループで、配列「hairetu」の2番目の数値である「99」と現在の変数「maxnum」のどちらが大きいか判断され、変数「maxnum」に「99」が入ります。

以下、For文内で判断が繰り返され、結局、「99」が一番大きいことが分かります。

 

 

 

 


 

最終更新:2011年06月28日 20:21
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。