'実行時バインディング Dim zz辞書 As Object Set zz辞書 = CreateObject("Scripting.Dictionary")
'事前バインディング Dim zz辞書 As New Scripting.Dictionary
「Dictionary」オブジェクトは、リスト化されたデータを扱う際に便利なオブジェクトです
このオブジェクトは、使用時にはインスタンスの作成を行う必要があります
インスタンスの作成には、2通りの方法があります
それが記事コードの2つになります
基本的には1つ目の実行時バインディングを行ってください
2つ目は事前に設定する必要があるため、自分の環境下以外で使用する可能性がある場合はエラーが発生します
なお、この事前バインディングはFileSystemObjectと同じものを参照設定すると有効になります
以下の記事で設定方法を画像付きで解説しています
使用の流れ
Dictionaryオブジェクトは、インスタンスを作成した段階ではなんのデータも入っていない状態です
まずは、データを登録していく作業が必要になります
データの登録にはAddメソッドを使用します
Dictionaryオブジェクトは、keyとitemの2つがペアとなってリストとなります
必要なデータを登録して、リストが完成したらそのリストのデータから条件に一致するデータがあるかを検索します
検索にはExistsメソッドを使用します
これはkeyを検索するメソッドになり、itemを検索するメソッドはありません
なぜなら、keyは一意で重複不可のデータであるためです
検索して見つかったら、そのデータに対応するデータを取得します
データを取得するkeyを指定することで、ペアのitemのデータを取得することが出来ます
Set zz辞書 = Nothing
使用が終わったら、上記のコードで変数の解放を行います
また、同じような役割でVBA標準のCollectionオブジェクトがありますが
こちらは検索が行えないなど使い勝手が少し微妙なのでこちらのDictionaryオブジェクトの利用に慣れていたほうが良いと思います
セル範囲を指定することでDictionaryオブジェクトを作成する関数を作成しました
以下の記事で紹介しています
Dictionaryオブジェクトのメンバー
- Addメソッド
オブジェクトにデータの新規追加を行います - Existsメソッド
オブジェクト内のkeyの内から指定データの有無の判定を行います - Itemプロパティ
オブジェクト内の指定keyのItemデータを取得します - Removeメソッド
オブジェクト内の指定keyとペアitemを削除します - RemoveAllメソッド
オブジェクト内のkeyとitemの全てを一括削除します - Countプロパティ
オブジェクト内のデータの個数を取得できます - Keys・Itemsメソッド
それぞれの全てのデータを配列として返されます - Key・Itemプロパティ
登録済みのデータをオブジェクト上で変更します