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)) = C End 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
『VBA 連想配列の基礎』 連想配列 アイテムを追加 Sub test()’ 「ツール」→「参照設定」→ 「Microsoft Scripting Runtime」にチックをつける必…ameblo.jp
『VBA 連想配列 データ一括格納』 連想配列 セルのデータを一括格納する Sub test2()’ 「ツール」→「参照設定」→ 「Microsoft Scripting Runtime」にチ…ameblo.jp
『VBA 連想配列で重複しないリスト作成』 連想配列 重複しないリスト作成 Sub test()’ 「ツール」→「参照設定」→ 「Microsoft Scripting Runtime」にチックをつ…ameblo.jp