この関数について
ExcelVBA(マクロ)で標準で使用できる関数の中に配列が初期化されているかを調べる関数はありません(あったらすみません、私は見たことがありません:2024/08/13)。関数リファレンスでは様々な用途へ利用できる関数を紹介していますが、中には返値として配列を返すものがあります。しかし、関数は常に関数が想定する場面で呼び出されるとは限らず、関数内で想定しない動きがあった場合、未定義の配列を返します(仕様により異なる場合もあります)。呼び出し元としては、意図したデータが格納された配列が返ってきたのか、未定義の配列が返ってきたのか、1行で判定をしたいところです。そんな時このページで紹介する関数で判定ができます。
関数コピペ ~コードをクリックするだけでコピー完了!~
使い方 ①引数
■引数1:arr
定義済の(初期化されている)配列かどうか判定したい配列を渡します。型は問いません。
使い方 ②戻り値
定義済の配列である場合 ・・・ True
未定義の配列である場合 ・・・ False
認識の相違があるといけないので、説明しておくと、空っぽの配列と未定義の配列は別物です。粗く分類すると、まだ要素数が決まっていない配列が未定義の配列で、要素数が決まっている配列は定義済の配列です。そのため、要素数が決まっているけど、中身が空っぽの配列をこの関数に通すと「True」判定となります。
サンプルコード(クリックでコピー)
【結果】初期化されている配列かどうか判定できました
サンプルコードの実行結果です。配列をRedimで初期化する前に関数で判定すると「False」Redimで初期化後に判定すると、まだ配列になにも格納されていなくても「True」と表示されます。
関数リファレンスにはコピペで使用可能な便利関数を多数掲載!
関数リファレンスでは私が開発の中で必要になったコード部品を汎用化・関数化して公開しています。この記事で紹介した関数以外にもコピペで利用できる関数を多数用意しています。検索窓から必要な機能を検索してみましょう!解説記事も続々公開中。
Comment