配列内の要素で完全一致した要素が何番目か取得したい場合があります。
単純に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
その他
配列の要素番号=セル列数と一致させた際、特定の情報がどこの列に入っているのか取得したいため、パーツ化しました。



コメント