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が使えない場合で、何度も検索する場合は、配列より辞書を検討してもよいと思われる。