連想配列でデータを高速検索

 

Sub test()

  ' 連想配列でデータ高速検索

  Dim A, B, C
  '辞書を作成
  Set A = CreateObject("Scripting.Dictionary")
  '元データベースを配列Bに格納
  B = Range("A2:C21")
  ' 検索対象を配列Cに格納
  C = Range("E2:G8")
  
  ' 検索キー(A列)を辞書Aに登録
  For i = 1 To UBound(B)
      
    A.Add B(i, 1), i
  Next
  
  Dim D
  For i = 1 To UBound(C)
    ' 辞書Aから検索対象(E列)に対応する行番号を取得
    D = A(C(i, 1))
    ' 配列Bから取得したNo.2を配列Cへ代入
    C(i, 2) = B(D, 2)
    ' 配列Bから取得した金額($)を配列Cへ代入
    C(i, 3) = B(D, 3)
  Next
  
  '配列Cをセルに入力
  Range("E2").Resize(UBound(C, 1), UBound(C, 2)) = C

  
End Sub

 

 

実行結果

 

 

 

― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る 

 

 

参考記事