Excel VBAで配列の要素数を取得する:UBound

VBAで配列の要素の数を取得するには、UBound 関数を使用します。

UBound 関数

UBound 関数の構文は以下のとおりです。

第1引数には配列名を指定します。第2引数には要素数を取得したい次元を指定します。第2引数を省略した場合は、1が適用されます。戻り値には取得した要素数が返されます。

以下にマクロ例を示します。

配列 A は1次元目の要素数が3、2次元目の要素数が6の2次元配列です。上のプログラムを実行すると、イミディエイトウィンドウに以下のように表示されます。

Ary6

使用例

UBound関数は、配列のサイズをあらかじめ決められないような場合、威力を発揮します。下記は、セル値を配列Aに代入し、指定した行番R(下記例では1)の要素を配列Bに代入するものです。配列Bを動的配列(要素数が決まっていない配列)にし、UBound関数でサイズを決めてやります。それによって、Aの要素数が変わっても宣言部(Dim)を変更するだけでよく、それ以外のコードは変更せずに済みます。

[シートの状態]Ary7[コード]

For~Nextでセルの値を配列Aに書き込みました。Redimは中身が空だった配列Bの再定義をしています。

Ary8

ローカルウィンドウで配列Bを確認したもの

[実行結果]

さらに、Aも動的配列にし、Endプロパティを使用して配列サイズを取得するようにすれば、セル数が変更されてもコードの変更はまったく必要なくなります。Endプロパティは、選択されたセル範囲の終端を返します。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて

購読

平日・週2回更新