Sub TEST1()
Dim A, B
'辞書を作成
Set A = CreateObject("Scripting.Dictionary")
B = Range("A2:C10") 'データベースを取得'データベースを辞書に登録
For i = 1 To UBound(B)
A.Add B(i, 1) & "/" & B(i, 2), B(i, 3)
Next
'辞書を検索して、値を取得
Range("G2") = A(Range("E2").Value & "/" & Range("F2").Value)
End Sub
Sub TEST2()
t = Timer
Dim A, B
A = Range("A2:C17577") 'データベースを取得
B = Range("E2:G2001") '検索値を取得
For i = 1 To UBound(B) '検索値のループ
For j = 1 To UBound(A) 'データベースのループ'複数条件の一致
If B(i, 1) = A(j, 1) And B(i, 2) = A(j, 2) Then
B(i, 3) = A(j, 3) '価格を取得
Exit For
End If
Next
Next
'検索した結果をセルに入力
Range("E2").Resize(UBound(B, 1), UBound(B, 2)) = B
Debug.Print Timer - t & " 秒"
End Sub
Sub TEST3()
t = Timer
Dim A, B, C
'辞書を作成
Set A = CreateObject("Scripting.Dictionary")
B = Range("A2:C17577") 'データベースを取得
C = Range("E2:G2001") '検索値を取得'データベースを辞書に登録
For i = 1 To UBound(B)
A.Add B(i, 1) & "/" & B(i, 2), B(i, 3)
Next
'辞書を検索
For i = 1 To UBound(C)
C(i, 3) = A(C(i, 1) & "/" & C(i, 2))
Next
'検索した結果を、セルに入力
Range("E2").Resize(UBound(C, 1), UBound(C, 2)) = C
Debug.Print Timer - t & " 秒"
End Sub