「vba 配列 最後の要素 取得」
といった検索キーワードで時折アクセスがあります。
VBAで、配列の最後の要素を取得するには、どのようなコードを書けばいいのかを調べていた方による検索です。
UBound関数の戻り値で最後の要素を取得できる
結論からお伝えします。
VBAのUBound関数を使って取得できる整数を使えば、配列の最後の要素を取得できます。
UBound関数の戻り値である整数を、添え字に指定して取得した要素が、配列の最後の要素です。
1オリジンの配列から最後の要素を取得するサンプルマクロ
サンプルマクロを実行してみましょう。
まずは1オリジン(1始まり)の配列からです。
Dim arr(1 To 3) As String
arr(1) = "a"
arr(2) = "bb"
arr(3) = "ccc"
MsgBox UBound(arr)
MsgBox arr(UBound(arr))
End Sub
上記のマクロを実行すると、
MsgBox UBound(arr)
で、整数「3」が表示されます。
これは、UBound関数で取得できる、配列arrの最大の添え字・インデックス番号です。
つづく、
MsgBox arr(UBound(arr))
で、最後の要素「ccc」が表示されます。
「UBound(arr)」を使って最後の要素を取得しています。
0オリジンの配列から最後の要素を取得するサンプルマクロ
つづいて0オリジン(0始まり)の配列も確認しましょう。
arr(0) = "a"
arr(1) = "bb"
arr(2) = "ccc"
MsgBox UBound(arr)
MsgBox arr(UBound(arr))
End Sub
先ほどの1オリジンのサンプルでは、
Dim arr(1 To 3) As String
arr(1) = "a"
arr(2) = "bb"
arr(3) = "ccc"
だった部分が、、
Dim arr(0 To 2) As String
arr(0) = "a"
arr(1) = "bb"
arr(2) = "ccc"
になっています。
結果は、
MsgBox UBound(arr)
で、整数「2」が表示され、次の
MsgBox arr(UBound(arr))
で、最後の要素「ccc」が表示されます。
VBAで配列の最後の要素を取得するには
添え字・インデックス番号の最初が「0」でも「1」でも、
MsgBox arr(UBound(arr))
を実行すれば、最後の要素である「ccc」がメッセージボックスに表示されます。
配列の添え字・インデックス番号は「0」か「1」が一般的ですが、たとえば
Dim arr(99 To 101) As String
arr(99) = "a"
arr(100) = "bb"
arr(101) = "ccc"
のような配列の場合でも、
MsgBox arr(UBound(arr))
で、最後の要素である「ccc」がメッセージボックスに表示されます。
結局UBound関数の戻り値である整数で取得した要素が、配列の最後の要素です。
最終更新日時:2023-06-12 13:11
Home » エクセルマクロ・Excel VBAの使い方 » 配列 » VBAで配列の最後の要素を取得する-UBound関数