Excel VBA 配列について(5)配列の要素数を取得するUBoundとLBound

Excel マクロ、VBA

スポンサーリンク

Excel VBAの配列では、

Dim arr(1 To 100 , 1 To 5)

など、要素数を決めてセットするわけだが、逆にその要素数(添字の上限・下限)を配列から取得することも当然できる。

それには、上限を取得するならUBound、下限を取得するならLBoundというものを使う。

これらは、UBound(arr, 1)のように書く。

UBound(配列の名前, 次元)

という構成だ。
次元」の方は省略することもできるが、2次元配列では省略するとややこしいので、明記するようにした方が良いだろう。

その「次元」は、2次元配列のarr(1 To 100 , 3 To 10)に対してなら、

次元=1 → 1 To 100 の方
次元=2 → 3 To 10 の方

だ。配列の添字は通常は0始まりだが、この「次元」は1始まりなのがまたややこしい。

その挙動をソースコードにまとめると、↓のような感じだ。

私としては、改めてこうやって要素数を取得しなくても、処理中に要素数を把握するようにしている場合が多いので、あまりUBound・LBoundは使わない。

ただ、ループ処理などで、↓のような書き方が紹介されることがある。

こういう処理記述も私はほぼ採用しないが、好みによって使うと良いかと思う。

Excel VBA 配列について(4)要素数が不定の配列

Excel VBA 配列について(3)2次元配列はExcelシートの値を扱うのに強力

Excel VBA 配列について(2)1次元配列の別類型

Excel VBA 配列について(1)1次元配列の基本

スポンサーリンク