Step5
配列
VBAに限らずプログラミングを学習する上での基礎知識です。。
1. 変数と配列
📦 変数
値Dim score As Integer
📌メモリにひとつの値を保存する場所が用意される
📦 配列
値
(0)
値
(1)
値
(2)
値
(3)
Dim score(3) As Integer
📌メモリに連番で値を保存する場所が用意される
それぞれの場所に インデックス(0, 1, 2...)が付く。
インデックスは添え字ともいう。
2. UBound関数(中級レベル)
UBound(Upper Bound)は、配列の最後のインデックス番号を取得する関数
UBound(配列名)
たとえば、次のような配列があるとします:
Dim score(3) As Integer
' 配列の各要素に値を代入
score(0) = 85
score(1) = 90
score(2) = 78
score(3) = 88
このとき、UBound(score) の結果は 3 。
📦 UBoundを使った繰り返し処理
Dim i As Integer
For i = 0 To UBound(score)
Debug.Print score(i)
Next i
サンプルコード
データの合計・件数・最大値・最小値を求める
Dim score(9) As Integer
Dim i As Integer
Dim total As Long
Dim maxScore As Integer
Dim minScore As Integer
Dim count As Integer
' 得点データ
score(0) = 85
score(1) = 90
score(2) = 78
score(3) = 88
score(4) = 95
score(5) = 72
score(6) = 60
score(7) = 91
score(8) = 84
score(9) = 77
total = 0
count = 0
maxScore = 0 ' 最小の整数で初期化
minScore = 100 ' 最大の整数で初期化
For i = 0 To UBound(score)
total = total + score(i)
count = count + 1
If score(i) > maxScore Then maxScore = score(i)
If score(i) < minScore Then minScore = score(i)
Next i
' イミディエイトウィンドウに出力
Debug.Print "Total (合計): " & total
Debug.Print "Count (件数): " & count
Debug.Print "Max (最大値): " & maxScore
Debug.Print "Min (最小値): " & minScore
Total (合計): 820
Count (件数): 10
Max (最大値): 95
Min (最小値): 60