以前Collectionを紹介しました。Collectionは他言語のListクラスに近い存在でした。今回はHashtableに近いDictionaryを紹介します。
事前準備
Dictionaryを利用するには参照設定を行う必要があります。以下記事を参照して参照設定を事前に完了させてください。
要素追加(Add)
Add関数を使用します。第一引数にキー(文字列型)、第二引数に追加したい要素を記述します。要素については、文字列、数値、オブジェクト等を追加することができます。既に存在するキーに対してAdd関数を使用するとエラーとなります。
要素取得(item)
item関数を使用します。引数にキーをを指定することで、要素を取得することができます。存在しないキーを指定した場合は、Emptyが返却されます。
要素削除(Remove)
Remove関数を使用します。引数にキーを指定することで、キーに対する要素を削除することができます。削除後はDictionaryの要素数が1つ減ります。存在しないキーを指定した場合は、実行時エラーとなります。
要素数取得(Count)
Countプロパティを使用します。Dictionaryの要素数を取得することができます。
要素配列取得(キー、値)(keys, items)
キー配列を取得するにはkeys関数、要素配列を取得するにはitems関数を使用します。Dictionaryの一覧を取得したい場合などに使用します。
サンプルプログラム
Sub sample()
Dim dic As New Dictionary
dic.Add "Feb", "2月"
dic.Add "Apr", "4月"
dic.Add "Sep", "9月"
dic.Add "Jan", "1月"
Debug.Print dic.item("Sep") ' 9月
Debug.Print dic.item("Feb") ' 2月
' Existsで存在チェック
Debug.Print dic.Exists("Sep") ' True
Debug.Print dic.Count ' 4 (要素数は4)
' Sepを削除
dic.Remove ("Sep")
Debug.Print dic.Exists("Sep") ' False
Debug.Print dic.Count ' 3 (1つ削除したので要素数は3)
Debug.Print dic.item("Sep") ' 何も表示されない
' 初期化
Set dic = New Dictionary
dic.Add "Mar", "3月"
dic.Add "May", "5月"
dic.Add "Nov", "11月"
dic.Add "Aug", "8月"
' Keysでキーの配列が返却
Debug.Print Join(dic.Keys, ",") ' Mar,May,Nov,Aug
' Itemsで値ーの配列が返却
Debug.Print Join(dic.Items, ",") ' 3月,5月,11月,8月
End Sub
出力結果
9月
2月
True
4
False
3
Mar,May,Nov,Aug
3月,5月,11月,8月