配列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



コメント