【VBA入門】UBound、LBound関数で配列の要素数を取得

UBound関数LBound関数って使ってますか?配列の要素数を調べるときに使うと便利な関数です。この記事では、UBound関数、LBound関数について

  • UBound関数、LBound関数とは
  • UBound関数の使い方
  • LBound関数の使い方

といった基本的な内容から、Ubound、LBound関数で配列要素を列挙する方法など具体的な使い方についても解説していきます。今回はUBound関数、LBound関数について、使い方をわかりやすく解説します。

UBound関数、LBound関数とは

UBound関数は引数に指定した配列で使用できる最も大きいインデックス番号を返します。LBound関数は引数に指定した配列で使用できる最も小さいインデックス番号を返します。配列の要素数を調べるためにLBound関数とUBound関数はよく使われています。

要素数は下記の式で求めることができます。

それではこれらの関数の使い方について配列の宣言と一緒にみていきましょう!

UBound関数の使い方

UBound関数は引数に指定した配列が1次元配列の場合と、2次元以上の多次元配列の場合で引数の指定が変わってきます。

[ ]内は省略可能です。引数arraynameでは配列名を指定します。引数dimensionでは次元を指定します。

1次元配列の場合

1次元配列の場合は、引数に対象となる配列名のみを指定します。サンプルコードで確認しましょう。

1d_ubound

画像:実行結果

このサンプルコードでは配列のインデックス番号の上限値がそれぞれ3、5、11の配列を宣言しています。UBound関数の引数にそれぞれの配列名を指定し、戻り値を表示しています。

宣言時に指定した配列のインデックス番号の上限値とUBound関数の戻り値が一致しているのがわかります。

多次元配列の場合

多次元配列の場合は、第1引数に対象となる配列名を、第2引数に調べる配列の次元を指定します。それではサンプルコードで確認しましょう。

1d_ubound

画像:実行結果

このサンプルコードでは各次元のインデックス番号の上限値がそれぞれ3、5、11の3次元配列を宣言しています。UBound関数の第2引数にそれぞれの次元を指定し、戻り値を表示しています。

宣言時に指定した各次元のインデックス番号の上限値とUBound関数の戻り値が一致しているのがわかります。

LBound関数の使い方

LBound関数も引数に指定した配列が1次元配列の場合と、2次元以上の多次元配列の場合で引数の指定が変わってきます。引数の指定の仕方はUBound関数と同じです。

1次元配列の場合

1次元配列の場合は、引数に対象となる配列名のみを指定します。サンプルコードで確認しましょう。

1d_lbound

画像:実行結果

このサンプルコードでは配列のインデックス番号の下限値がそれぞれ1、3、5の配列を宣言しています。LBound関数の引数にそれぞれの配列名を指定し、戻り値を表示しています。

宣言時に指定した配列のインデックス番号の下限値とLBound関数の戻り値が一致しているのがわかります。

多次元配列の場合

多次元配列の場合は、第1引数に対象となる配列名を、第2引数に調べる配列の次元を指定します。それではサンプルコードで確認しましょう。

1d_lbound

画像:実行結果

このサンプルコードでは各次元のインデックス番号の下限値がそれぞれ1、3、5の3次元配列を宣言しています。LBound関数の第2引数にそれぞれの次元を指定し、戻り値を表示しています。

宣言時に指定した各次元のインデックス番号の下限値とLBound関数の戻り値が一致しているのがわかります。

UBound、LBound関数で配列の要素数を取得

UBound、LBound関数の使い方をお伝えしましたので、実際に配列の要素数を取得してみましょう。文字列を区切り文字で分割し配列に格納するSplit関数を例にして、格納した要素数を求めてみます。

要素数は前述のとおり下記の式で求めることができます。

UBound01

画像:実行結果

Split関数の使い方については、こちらで詳しく解説していますので、ぜひ参考にしてください。

UBound、LBound関数で配列要素を列挙する

UBound関数、LBound関数は配列の要素をひとつずつ参照する場合にFor文とあわせてよく使われます。

1次元配列の場合

1次元配列の場合のサンプルコードを確認しましょう。

1d_For

画像:実行結果

多次元配列の場合

3次元配列の場合のサンプルコードを確認しましょう。

3d_For

画像:実行結果

まとめ

ここではUBound関数、LBound関数について説明しました。配列の要素数を調べたり、For文とあわせて要素にひとつずつアクセスする場合に使うと便利です。使いこなすことができるように、この記事を何度も参考にして下さいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説