VBScript: 配列が空(要素なし)かどうかを判定する自作関数

VBScriptで配列が空(要素なし)かどうかを判定したい場合、 特に専用の関数は用意されていません。
そこで配列の空判定を行う関数「CheckArrayElem」を作成しました。

戻り値はTrue(-1), False(0) の2通りで、 配列が空でない(要素がある)場合は「True」、 空の(要素がない)配列の場合は「False」を返します。

ロジックとしてはUbound 関数を実行したときに、 エラーが発生する場合は要素数なしとみなしています。

' ///////////////////////////////////////////////////
' 配列が空かどうかを判定する
' 戻り値: True(-1)  空でない(要素あり)
'         False(0)  空(要素なし)、または配列ではない
Function CheckArrayElem(arr)

	On Error Resume Next
	
	'配列かどうかを確認
	If IsArray(arr) <> True Then
		CheckArrayElem = False
		Exit Function
	End If
	
	'要素数の最大値を取得
	num = UBound(arr)
	
	If err.number <> 0 Then
		CheckArrayElem = False
	Else
		CheckArrayElem = True
	End If
	
End Function

関数の使い方は次の通りです。

' 要素数3の配列
arrTemp = Array("a", "b", "c")
re = CheckArrayElem(arrTemp)
WScript.Echo re   ' -1

' 宣言のみの配列(空の配列)
Dim arrTemp2()
re = CheckArrayElem(arrTemp2)
WScript.Echo re   ' 0

' 配列でない変数を指定
Dim a
re = CheckArrayElem(a)
WScript.Echo re   ' 0

上のコードでは3通りの方法で関数を呼び出しています。

①要素のある配列の場合はTrue、 ②動的配列の宣言のみで空の配列の場合はFalse、 ③配列でない変数を指定した場合はFalseが戻っています。

VBScript入門