配列Aに配列B内の要素が全て含まれているかどうか
配列データと指定文字を完全一致ではなく、
別配列内の要素が全て含まれているかチェックしたい場合があります。
パーツ化することで、今後の開発の時短に繋がります。
配列Aに配列B内の要素が全て含まれているか判定するサンプルコード
'■配列arr内に配列sKey内の要素がすべて含まれていればTrue/一つも含まれてなければFalse
Public Function call_arrToarrFuzzySearchFull(arr As Variant, sKey As Variant) As Boolean
Dim flg As Boolean
Dim i As Long, j As Long
For i = LBound(arr) To UBound(arr)
flg = True
For j = LBound(sKey) To UBound(sKey)
'■要素に含まれていなければFalse=逆に言えば全て要素に含まれればflgはTrueのまま
If InStr(arr(i), sKey(j)) = 0 Then
flg = False
Exit For
End If
Next
If flg = True Then
call_arrToarrFuzzySearchFull = True
Exit Function
End If
Next
call_arrToarrFuzzySearchFull = False
End Function
実際の使い方
Public Sub sample()
Dim arr(4) As Variant
arr(0) = "りんごジュース"
arr(1) = "みかんジュース"
arr(2) = "ぶどうジュース"
arr(3) = "バナナジュース"
arr(4) = "マンゴージュース"
Debug.Print call_arrToarrFuzzySearchFull(arr, Array("りんご", "ジュース")) 'True 「りんご」も「ジュース」も一要素内で両方ヒット
Debug.Print call_arrToarrFuzzySearchFull(arr, Array("りんご", "みかん")) 'False 「りんご」「みかん」は一要素内で片方しかヒットしない
Debug.Print call_arrToarrFuzzySearchFull(arr, Array("xxx", "yyy")) 'False
End Sub



コメント