データ検索 辞書 覚書

Public Function GetMakerbyID(intID As Long) As String
    Dim MstArray    As Variant
    Dim Keyval      As Long
    Dim Itemval     As String
    Dim n           As Long
    Dim myDic       As Object
    GetMakerbyID = ""
    MakerM.Select
    MstArray = Range(Cells(2, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 2))
    Set myDic = CreateObject("Scripting.Dictionary")
    For n = 1 To UBound(MstArray)
        Keyval = MstArray(n, 1)
        Itemval = MstArray(n, 2)
        If Not myDic.Exists(Keyval) Then
            '未登録の場合登録
            myDic.Add Keyval, Itemval
        End If
    Next n
    GetMakerbyID = myDic(intID)
    Set myDic = Nothing
End Function

辞書の登録にコストがかかるが、Dictionaryを保持しておけば、2回目以降は myDic(キー検索値)で取得できるので、なかなか有用。
ADOが使えない場合で、何度も検索する場合は、配列より辞書を検討してもよいと思われる。