ニ次元配列内に指定した文字が含まれるかどうか判定したい(部分一致/あいまい検索)
配列データと指定文字を完全一致ではなく、あいまい検索したい場合があります。
パーツ化することで、今後の開発の時短に繋がります。
ニ次元配列内に指定文字が含まれるかどうか判定するサンプルコード
'■2次元配列内に指定文字strが含まれていればTrue/存在しなければFalse/sColは検索する列位置
Public Function Call_arrCheck2DLike(str As String, arr As Variant, sCol As Long) As Boolean
Dim i As Long
For i = LBound(arr, 1) To UBound(arr, 1)
If str Like "*" & arr(i, sCol) & "*" Then Call_arrCheck2DLike = True: Exit Function
Next
Call_arrCheck2DLike = False
End Function
実際の使い方
Public Sub sample()
Dim arr(4, 1) As Variant
arr(0, 0) = "A": arr(0, 1) = "りんご":
arr(1, 0) = "B": arr(1, 1) = "みかん":
arr(2, 0) = "C": arr(2, 1) = "ぶどう":
arr(3, 0) = "D": arr(3, 1) = "バナナ":
arr(4, 0) = "E": arr(4, 1) = "マンゴー":
Debug.Print Call_arrCheck2DLike("りん", arr, 0) 'False
Debug.Print Call_arrCheck2DLike("りん", arr, 1) 'False
Debug.Print Call_arrCheck2DLike("りんご", arr, 0) 'False
Debug.Print Call_arrCheck2DLike("りんご", arr, 1) 'True
Debug.Print Call_arrCheck2DLike("りんごあめ", arr, 0) 'False
Debug.Print Call_arrCheck2DLike("りんごあめ", arr, 1) 'True
Debug.Print Call_arrCheck2DLike("xxx", arr, 0) 'False
Debug.Print Call_arrCheck2DLike("xxx", arr, 1) 'False
End Sub



コメント