構文
構文は以下の通りです。
UBound(配列, [次元])
解説
UBound関数は、配列の指定された次元の上限(最も大きいインデックス)を返す関数です。配列は、上限を知りたい配列を指定します。次元 (省略可能)は、多次元配列の場合、どの次元の上限を知りたいかを指定します。省略すると、1次元目の上限が返されます。
プログラミング例
具体的なプログラミング例を紹介します。
(例1)一次元配列の場合
Sub 一次元配列の上限を取得()
Dim 果物(1 To 5) As String
果物(1) = "りんご"
果物(2) = "バナナ"
果物(3) = "みかん"
果物(4) = "ぶどう"
果物(5) = "もも"
Dim 上限 As Integer
上限 = UBound(果物)
MsgBox "一次元配列の上限は " & 上限 & " です。"
End Sub
Dim 果物(1 To 5) As String
果物(1) = "りんご"
果物(2) = "バナナ"
果物(3) = "みかん"
果物(4) = "ぶどう"
果物(5) = "もも"
Dim 上限 As Integer
上限 = UBound(果物)
MsgBox "一次元配列の上限は " & 上限 & " です。"
End Sub
上記のプログラムは、果物という名前の配列を作成し、1から5までの範囲で5つの要素を持たせています。UBound関数を使用して、配列の上限を取得し、上限という変数に格納します。最後に、MsgBoxで配列の上限を表示します。この場合、結果は「5」となります。
(例2)二次元配列の場合
Sub 二次元配列の上限を取得()
Dim 教科(1 To 3, 1 To 4) As String
教科(1, 1) = "国語"
教科(1, 2) = "算数"
教科(1, 3) = "理科"
教科(1, 4) = "社会"
教科(2, 1) = "英語"
教科(2, 2) = "音楽"
教科(2, 3) = "体育"
教科(2, 4) = "図工"
教科(3, 1) = "家庭科"
教科(3, 2) = "道徳"
教科(3, 3) = "総合"
教科(3, 4) = "選択"
Dim 上限1次元目 As Integer
Dim 上限2次元目 As Integer
上限1次元目 = UBound(教科, 1)
上限2次元目 = UBound(教科, 2)
MsgBox "1次元目の上限は " & 上限1次元目 & " です。" & vbCrLf & _
"2次元目の上限は " & 上限2次元目 & " です。"
End Sub
Dim 教科(1 To 3, 1 To 4) As String
教科(1, 1) = "国語"
教科(1, 2) = "算数"
教科(1, 3) = "理科"
教科(1, 4) = "社会"
教科(2, 1) = "英語"
教科(2, 2) = "音楽"
教科(2, 3) = "体育"
教科(2, 4) = "図工"
教科(3, 1) = "家庭科"
教科(3, 2) = "道徳"
教科(3, 3) = "総合"
教科(3, 4) = "選択"
Dim 上限1次元目 As Integer
Dim 上限2次元目 As Integer
上限1次元目 = UBound(教科, 1)
上限2次元目 = UBound(教科, 2)
MsgBox "1次元目の上限は " & 上限1次元目 & " です。" & vbCrLf & _
"2次元目の上限は " & 上限2次元目 & " です。"
End Sub
上記のプログラムは、教科という名前の二次元配列を作成し、3行4列の範囲で教科名を設定しています。UBound関数を使用して、1次元目(行数)と2次元目(列数)の上限をそれぞれ取得します。最後に、MsgBoxでそれぞれの次元の上限を表示します。この場合、結果は「1次元目の上限は3、2次元目の上限は4」となります。
まとめ
UBound関数は配列の指定された次元の上限を取得するために使用します。基本的な構文は簡単で、単一次元の配列に対しても、多次元の配列に対しても利用可能です。