OR
誰でも自由に記事を投稿・編集できるオープンリファレンス
記事ID:583
区分:プログラム  |  分類:VB  |  最終更新日:2014/06/20
クリエイティブ・コモンズ 表示-継承ライセンス 2.1
【VB6/VBA】配列が空かどうか調べる
関連タグ:vb6, vba, 配列
このエントリーをはてなブックマークに追加      
本文
履歴
編集
閲覧数: 131,917
VB6関連技術まとめ > 【VB6/VBA】配列が空かどうか調べる

VB6/VBA には変数が配列かどうかを調べる関数(IsArray)はありますが、配列が空かどうかを調べる関数はありません。ですので、配列が空かどうかを調べるには、自作の関数を実装する必要があります。

IsArray() 関数に空の配列チェックを追加した自作関数は以下になります。

 

構文 IsArrayEx(varname)
機能 引数が配列かどうかを判定し、配列であった場合は空かどうかも判定します。
引数
引数省略説明
varname 不可 有効な任意の式を指定します。
戻り値

長整数型(Long)

戻り値説明
1 配列
0 空の配列
-1 配列じゃない

 

【実装関数】

'***********************************************************
' 機能   : 引数が配列か判定し、配列の場合は空かどうかも判定する
' 引数   : varArray  配列
' 戻り値 : 判定結果(1:配列/0:空の配列/-1:配列じゃない)
'***********************************************************
Public Function IsArrayEx(varArray As Variant) As Long
On Error GoTo ERROR_

    If IsArray(varArray) Then
        IsArrayEx = IIf(UBound(varArray) >= 0, 1, 0)
    Else
        IsArrayEx = -1
    End If

    Exit Function

ERROR_:
    If Err.Number = 9 Then
        IsArrayEx = 0
    End If
End Function

 

【使用例】

Public Sub sample()
    Dim strArray() As String
    
    Select Case IsArrayEx(strArray)
        Case 1
            Debug.Print "strArrayは配列です。"
        Case 0
            Debug.Print "strArrayは空の配列です。"
        Case -1
            Debug.Print "strArrayは配列ではありません。"
    End Select
End Sub

 

上記使用例では strArray 変数が空の配列であるため、「atrArrayは空の配列です。」と表示されます。

関連記事
外部リンク
外部リンクはありません。
- 記事検索 -