Home » エクセルマクロ・Excel VBAの使い方 » 配列 » VBAで配列の最後の要素を取得する-UBound関数

VBAで配列の最後の要素を取得する-UBound関数

動作検証バージョン:Windows 11 Home + 64bit Excel(バージョン2306 ビルド16529.20000)

「vba 配列 最後の要素 取得」
といった検索キーワードで時折アクセスがあります。

VBAで、配列の最後の要素を取得するには、どのようなコードを書けばいいのかを調べていた方による検索です。

[スポンサードリンク]

UBound関数の戻り値で最後の要素を取得できる

結論からお伝えします。
VBAのUBound関数を使って取得できる整数を使えば、配列の最後の要素を取得できます。

UBound関数の戻り値である整数を、添え字に指定して取得した要素が、配列の最後の要素です。

1オリジンの配列から最後の要素を取得するサンプルマクロ

サンプルマクロを実行してみましょう。
まずは1オリジン(1始まり)の配列からです。

Sub 配列の最後の要素を取得する__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始まり)の配列も確認しましょう。

Sub 配列の最後の要素を取得する__0オリジンの場合() Dim arr(0 To 2) As String
 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関数

「配列」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.