VBA 連想配列でデータ高速検索
連想配列でデータを高速検索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)) = CEnd Sub実行結果― ― ― ― ― ― ― ― ― ― → Excel VBA基礎入門もくじ へ戻る参考記事『VBA 配列とは?』配列とは配列は、通常配列変数でも呼ばれ、一つの変数に複数の値をまとめて格納できる特殊なデータ構造のことです。配列には、固定長配列(静的配列)と動的配列の…ameblo.jp『VBA 連想配列の基礎』連想配列 アイテムを追加Sub test()’ 「ツール」→「参照設定」→ 「Microsoft Scripting Runtime」にチックをつける必…ameblo.jp『VBA 連想配列 データ一括格納』連想配列 セルのデータを一括格納するSub test2()’ 「ツール」→「参照設定」→ 「Microsoft Scripting Runtime」にチ…ameblo.jp『VBA 連想配列で重複しないリスト作成』連想配列 重複しないリスト作成Sub test()’ 「ツール」→「参照設定」→ 「Microsoft Scripting Runtime」にチックをつ…ameblo.jp