21. 最大
リテラルで宣言された
数値に注意しなくては
ならない。
21
Function get_max(array_data)
max_ = -3000000000# ' negative large enough
For i = 0 To UBound(array_data)
If max_ < array_data(i) Then
max_ = array_data(i)
End If
Next i
get_max = max_
End Function
Sub test()
Const max_index As Integer = 2
Dim arr(max_index) As Integer
arr(0) = 10 ' set test data
arr(1) = 15
arr(2) = 17
Cells(1, 1) = get_max(arr) ' show value
End Sub
*変数名が予約語だった場合は別名に変えて下さい
**シングルコーテーションがおかしいかも
@VBA
22. 最小
リテラルで宣言された数
値に注意しなくてはなら
ない。
22
Function get_min(array_data)
min_ = 3000000000# ' very big enough
For i = 0 To UBound(array_data)
If min_ > array_data(i) Then
min_ = array_data(i)
End If
Next i
get_min = min_
End Function
Sub test()
Const max_index As Integer = 2
Dim arr(max_index) As Integer
arr(0) = 10 ' set test data
arr(1) = 15
arr(2) = 17
Cells(1, 1) = get_min(arr) ' show value
End Sub
*変数名が予約語だった場合は別名に変えて下さい
**シングルコーテーションがおかしいかも
@VBA
23. 合計
23
Function get_total(array_data)
total_ = 0
For i = 0 To UBound(array_data)
total_ = total_ + array_data(i)
Next i
get_total = total_
End Function
Sub test()
Const size As Integer = 10
Dim arr(size) As Integer
arr(0) = 10 ' set test data
arr(1) = 15
arr(2) = 17
Cells(1, 1) = get_total(arr) ' show value
End Sub
*変数名が予約語だった場合は別名に変えて下さい
@VBA
ここで、UBoundは配列の最
大インデックスを返す関数で
ある。
get_total関数は、様々な型の
配列に対応するために型の宣
言を省略している。ただし、
メモリと動作速度は消費する。