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 | 大文字小文字を区別しない(実務で推奨) |
コメント