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