配列に特定の要素が何番目に含まれるかをチェックする

VBA

配列に特定の要素が何番目に含まれるかをチェックする

VBAで、配列に特定の要素が何番目に含まれるかをチェックするサンプルプログラムです。

 

'=========================================================
'[概  要] 配列に特定の要素が何番目に含まれるかをチェックする
'[引数1] arr        : 探索対象の配列
'[引数2] SearchStr  : 探索する文字列
'[戻り値] 要素のある位置(配列の添え字)を返す(0~)
'[備考1] 取得した要素の番号は0始まり
'[備考2] ない場合、エラー時は-1で返す
'=========================================================
Public Function checkArrayContainElement(ByVal arr As Variant, ByVal SearchStr As String) As Integer

On Error GoTo ErrLabel
   
    For i = 0 To UBound(arr)
   
        '部分一致(検索文字を含んでいればOK)
        If InStr(arr(i), SearchStr) > 0 Then
            checkArrayContainElement = i
            Exit Function
        End If
       
        '完全一致ならこちらを使用する
        If arr(i) = SearchStr Then
            checkArrayContainElement = i
            Exit Function
        End If
   
    Next
   
    'ない場合は-1
    checkArrayContainElement = -1
   
ErrLabel:

    'エラー時も空とみなす
    checkArrayContainElement = -1
   
End Function

 

 

 

'上の関数のテスト実行
Dim testArr(2) As Variant

'すべてNull
testArr(0) = "あいう"
testArr(1) = "えお"
testArr(2) = "かきく"

MsgBox checkArrayContainElement(testArr, "う") '結果:0
MsgBox checkArrayContainElement(testArr, "お") '結果:1
MsgBox checkArrayContainElement(testArr, "さ") '結果:-1