この関数について
ExcelVBA(マクロ)で標準で使用できる関数の中に配列が初期化されているかを調べる関数はありません(あったらすみません、私は見たことがありません:2024/08/13)。関数リファレンスでは様々な用途へ利用できる関数を紹介していますが、中には返値として配列を返すものがあります。しかし、関数は常に関数が想定する場面で呼び出されるとは限らず、関数内で想定しない動きがあった場合、未定義の配列を返します(仕様により異なる場合もあります)。呼び出し元としては、意図したデータが格納された配列が返ってきたのか、未定義の配列が返ってきたのか、1行で判定をしたいところです。そんな時このページで紹介する関数で判定ができます。
使い方 ①引数
■引数1:arr
定義済の(初期化されている)配列かどうか判定したい配列を渡します。型は問いません。
使い方 ②返値
定義済の配列である場合 ・・・ True
未定義の配列である場合 ・・・ False
認識の相違があるといけないので、説明しておくと、空っぽの配列と未定義の配列は別物です。粗く分類すると、まだ要素数が決まっていない配列が未定義の配列で、要素数が決まっている配列は定義済の配列です。そのため、要素数が決まっているけど、中身が空っぽの配列をこの関数に通すと「True」判定となります。
使い方 ③呼び出し方例(サンプルコード)
Public Sub Test_IsInitArray()
Dim arr() As String
Debug.Print IsInitArray(arr)
ReDim arr(0 To 0)
Debug.Print IsInitArray(arr)
End Sub
【結果】初期化されている配列かどうか判定できました
サンプルコードの実行結果です。
この関数は関数リファレンスからコピペ可能です!
この記事のタイトルを検索窓へ貼り付けて関数を検索してみましょう。 表示されたコードをクリックするだけでコピー完了! あとは自身で作成したモジュールに貼り付けるだけでこの関数を利用できます。サンプルコードもあり! 関数リファレンストップへ
Comment