配列(一次元/二次元)

一次元配列で完全一致した要素が何番目かを取得する【ExcelVBA】

配列内の要素で完全一致した要素が何番目か取得したい場合があります。
単純に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

その他

配列の要素番号=セル列数と一致させた際、特定の情報がどこの列に入っているのか取得したいため、パーツ化しました。

関連記事

コメント

タイトルとURLをコピーしました