エクセルVBAで使うコードの備忘録。VBAで配列が要素を持たない(空の場合)にTRUE、そうでない場合にFALSEを返す関数。配列の要素数を調べるUBound関数は配列が空の場合はエラーを返してしまうので、この問題に対処するためによく使用します。
UBound関数を利用して判定する
上記の導入部分でも書きましたが、UBound関数を使用すると配列が空であればエラーが発生します。これは逆に言えば、エラーが発生する場合は配列が空であるという判定ができるということです。
下記のサンプルコードでは、UBound関数を使用して配列のサイズを取得しようと試み、エラーが発生した場合はTrue(配列は空)を返すようにしてあります。
サンプルコード
'--- 配列が空の場合はTrueを返す関数 ---'
Public Function IsEmptyArray(arrayTmp As Variant) As Boolean
On Error GoTo ERROR_
'UBound関数を使用してエラーが発生するかどうかを確認
If (0 < UBound(arrayTmp, 1)) Then
IsEmptyArray = False
Else
IsEmptyArray = True
End If
Exit Function
ERROR_:
'エラーが発生した場合
IsEmptyArray = True
End Function