【VBA】配列が空かどうか判定する

エクセル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