配列内の要素で完全一致した要素が何番目か取得したい場合があります。
単純にFor~Loopで処理します。
一次元配列で完全一致した要素が何番目かを取得するサンプルコード
'■一次元配列内の要素に完全一致した要素が何番目かなのか取得する Public Function Call_ArraySearch(arr As Variant) Dim i As Long, k As Long Dim tmp As Variant ReDim tmp(UBound(arr)) '■単純にFor~Loopで回して検索する For i = LBound(arr) To UBound(arr) If arr(i) = sWord Then tmp(k) = arr(i) k = k + 1 End If Next i ReDim Preserve tmp(k - 1) Call_ArraySearch = tmp End Function
実際の使い方
Public Sub sample() Dim arr(3) As Variant Dim var As Variant arr(0) = 0 arr(1) = 111 arr(2) = 222 arr(3) = 333 '■222に完全一致するデータが配列の何番目か取得する Debug.Print Call_ArraySearchGetNumber(arr, "222") '→2 End Sub
その他
配列の要素番号=セル列数と一致させた際、特定の情報がどこの列に入っているのか取得したいため、パーツ化しました。
コメント