配列に特定の要素が何番目に含まれるかをチェックする
配列に特定の要素が何番目に含まれるかをチェックする
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