Dictionaryオブジェクト

Dictionaryオブジェクトの解説と記事一覧

'実行時バインディング
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プロパティ
    登録済みのデータをオブジェクト上で変更します