VBA Dictionary

Dictionay概要

Dictionaryとは

  • 連想配列
  • (Key)と値(Item)をペアで管理できるコレクション型オブジェクト。

便利な機能

  • 重複判定
    キーの存在チェックで一瞬で判断できる
  • 集計(グループ化)
    同じキーに対して合計や件数などを保持
  • マッピング(対応づけ)
    検索性UP+コードが読みやすい
  • 高速検索
    ハッシュ検索で爆速
  • キーでデータ整理できる
    キーのリスト(Keys)を取り出してソートも可

利用時の宣言

VBAの Dictionary を利用する場合、参照設定の有無によって宣言方法が異なる

参照設定をする場合(推奨:開発中)

  • Microsoft Scripting Runtime を参照設定して使用
  • 型が明確になるため、開発効率と保守性が向上する
//事前バインディング (参照設定が必要)
Dim dic As Scripting.Dictionary
Set dic = New Scripting.Dictionary

参照設定をしない場合(推奨:配布向け)

  • 参照設定なしで動作するため、他のPCでもそのまま動かせるメリットがある
//事後バインディング
Dim dic As Object
Set dic = CreateObject("Scripting.Dictionary")

主要メソッドとプロパティ

メソッド

メソッド名役割・説明使用例
Add Key, Itemキーと値を新規追加(重複キーはエラー)dic.Add “A001”, “田中”
Remove(Key)指定キーの要素削除dic.Remove “A001”
RemoveAll全要素削除(初期化)dic.RemoveAll
Exists(Key)キー存在チェック(True/False)If dic.Exists(“A001”) Then…

プロパティ

プロパティ名役割・説明使用例
Item(Key)指定キーの値を取得/更新dic(“A001”) = “佐藤”
Count要素数(レコード数)Debug.Print dic.Count
Keysキー一覧を配列で取得arrKeys = dic.Keys
Items値一覧を配列で取得arrItems = dic.Items
CompareModeキー比較方法(大文字小文字区別等)dic.CompareMode = vbTextCompare

CompareMode

設定値意味
BinaryCompare大文字小文字を区別(デフォルト)
TextCompare大文字小文字を区別しない(実務で推奨)

コメント