VBAで配列の要素数を取得する方法の解説

VBAでは、配列の要素数を取得するために、以下の方法があります。

  1. UBound関数を使う方法
  2. Len関数を使う方法

それぞれ、確認していきましょう。

UBound関数を使う方法

UBound関数は、”Upper Bound”の略で、配列の最大のインデックス(上限)を返す関数です。
一方、LBound関数は、”Lower Bound”の略で、配列の最小のインデックス(下限)を返す関数です。
両方を合わせて使うことで、配列の要素数を求めることができます。

UBound関数を使って配列の要素数を求める例を示します。まず、以下のような配列を定義します。

この配列には、要素が5つあります。次に、UBound関数を使って、配列の最大インデックスを取得します。

この場合、lastIndexには、5が代入されます。最後に、1を足すことで、配列の要素数を求めることができます。

ここでは、LBound関数を使って、配列の最小インデックスを取得し、最大インデックスから最小インデックスを引いて1を足すことで、配列の要素数を求めています。

また、UBound関数は、配列の次元を指定することもできます。2次元配列の場合は、以下のように使うことができます。

UBound関数を使うことで、配列の要素数や、各次元の最大インデックスを取得することができます。

サンプルコード

配列から重複した値を取り除くコード

このコードでは、1次元の整数型配列から重複した値を取り除く処理を行っています。
配列から重複した値を取り除くために、ForループとIf文を使っています。
重複した値が見つかった場合、後ろの要素を前に詰めて配列から削除しています。

Len関数を使用する方法

Len関数は、文字列の長さを返す関数ですが、配列に対しても使用することができます。配列を文字列に変換し、その文字列の長さを取得することで、配列の要素数を取得することができます。

具体的には、Join関数を使用して配列を文字列に変換し、その文字列の長さを取得します。Join関数は、指定された区切り文字を使用して、配列の要素を1つの文字列に結合します。以下は例です。

Join関数で配列を文字列に変換した後、Len関数を使用して文字列の長さを取得します。ただし、このままLen関数を使用すると、区切り文字の長さも含まれてしまうため、要素数を取得するには、文字列の長さを、配列の1つの要素の長さで割る必要があります。以下は例です。

この方法は、配列が文字列である場合にのみ使用できます。また、要素が文字列型でない場合には、この方法は正しく機能しません。したがって、可能であればUBound関数を使用することをお勧めします。

コメント