Dictionary オブジェクト(連想配列)は普通の配列のように、宣言するだけ使用することはできません。
Dictionary オブジェクト(連想配列)を使用する方法は、以下の2つになります。
関数を利用して、Dictionary オブジェクト(連想配列)を使えるようにする方法です。
【利用方法】
Dim dic_d As Object Set dic_d = CreateObject("Scripting.Dictionary") ***変数「dic_d」を利用した処理*** Set dic_d = Nothing
【メリット】
【デメリット】
VBE画面の設定を利用する方法です。
【利用方法】
Dim dic_d As New Scripting.Dictionary ***変数「dic_d」を利用した処理*** Set dic_d = Nothing
【メリット】
【デメリット】
どちらのコードも処理の最後に
Set dic_d = Nothing
と、変数「dic_d」を解放するコードが必要です。
Dictionary オブジェクトのインスタンスが、メモリ上にずっと残ってしまうことがあるからです。
それがどういう状況なのかはわからないのですが、私も長時間マクロ処理をしていると処理が遅くなっていく現象に見舞われることがあります。
もしかして、何かがメモリに溜まっているのかもしれません。
そんな時は、Excelと一旦閉じて再度立ち上げると、その現象は解消されます。
そんなこともあり、オブジェクト変数は最後に「Nothing」として、メモリ上から消すように心がけています。
Dictionary オブジェクト(連想配列) とは ビッグデータ高速処理を可能にする技 (Excel VBA)
重複しないユニークなリスト作成 ~Dictionaryオブジェクト(連想配列)を使う1~ (Excel VBA)
重複しないユニークなリスト作成 ~Dictionaryオブジェクト(連想配列)を使う2~ (Excel VBA)
Dictionaryオブジェクト(連想配列) CreateObject関数を使う方法・ 参照設定を使う方法 違いを理解してエラー防止(Excel VBA)
Dictionary オブジェクト(連想配列)に登録されたキー(key)をまとめて取得する(Excel VBA)
Dictionary オブジェクトに新しくキー(key)を登録し、値(item)を関連付ける(Excel VBA)
Dictionary オブジェクト 実行時エラー 457 を出さないために 指定したキー(key)が登録されているか確認する(Excel VBA)
Dictionary オブジェクト(連想配列)に登録されたキー(key)をインデックス番号から取得(Excel VBA)
Dictionary オブジェクト(連想配列)に登録されたキー(key)を変更する(Excel VBA)
Dictionary オブジェクト(連想配列)に登録された値(item)をまとめて取得する(Excel VBA)
Dictionary オブジェクト(連想配列)に登録された値(item)を、キー(key)やインデックス番号を指定して取得する(Excel VBA)
Dictionary オブジェクト(連想配列)に登録された値(item)を変更する(Excel VBA)
Dictionary オブジェクト(連想配列)に登録されたキー(key)と値(item)を削除(Excel VBA)
Dictionary オブジェクト(連想配列)に登録されたキー(key)を一気に取得する(Excel VBA)
セル範囲を一気に変数(配列)に入れる ~バリアント型(Variant)変数を配列として使用する~(Excel VBA)