の下限値、上限値を求める為には、LBound 関数、UBound 関数をそれぞれ
用いる。各関数の書式は下記の通り :
LBound(ArrayVarname [, Dimension])
UBound(ArrayVarname [, Dimension])
ArrayVarname は対象となる配列変数。
Dimension には、インデックス範囲の下限値、上限値を求めたい次元を指定
する。例えば、ArrayVarname が 3 次元配列変数であった場合、第 2 次元目
のインデックス範囲を求めたい場合は、Dimension に 2 を指定する。省略時
は 1 次元とみなされる。
サンプルコードを以下に記す(わざわざ値を代入する必要はないのだが...) :
Sub ExampleIndexBounds()
Dim arr1(3) As String
Dim arr2(2, 3) As String
'
'変数 arr1 に値を代入する
'変数 arr1 に値を代入する
arr1(0) = "0"
arr1(1) = "1"
arr1(2) = "2"
arr1(3) = "3"
'
'変数 arr2 に値を代入する
arr2(0, 0) = "00"
'
'変数 arr2 に値を代入する
arr2(0, 0) = "00"
arr2(0, 1) = "01"
arr2(0, 2) = "02"
arr2(0, 3) = "03"
arr2(1, 0) = "10"
arr2(1, 1) = "11"
arr2(1, 2) = "12"
arr2(1, 3) = "13"
arr2(2, 0) = "20"
arr2(2, 1) = "21"
arr2(2, 2) = "22"
arr2(2, 3) = "23"
'
Msgbox("arr1のインデックス範囲は " & _
Msgbox("arr2のインデックス範囲は " & _
LBound(arr2, 1) & "-" & UBound(arr2, 1) & " " & _
LBound(arr2, 2) & "-" & "UBound(arr2,2))
End Sub実行の結果、
「arr1のインデックス範囲は 0-3」
「arr2のインデックス範囲は 0-2 0-3」
とメッセージが表示される。
ここで、インデックスは 0 から始まり、次元は 1 から始まることに注意する
こと(なんとなく、統一感がないが...)。
0 件のコメント:
コメントを投稿