配列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
コメント