Dictionary Dictionaryオブジェクト基本サンプルコード(全プロパティ・メソッド)

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

説明
  • Dictionaryつまり辞書です。
  • 項目インデックスや参考本などの末頁にある索引です。
  • IMEの単語登録と同じ機能をします。
  • キー(左)と項目(右)で登録します。
  • キーはデータベースの概念のキーに似ていますが文字でも構いません。
  • 登録の仕方によっては単一の検索やグループの検索が簡単に出来ます。
  • フィルター機能に似ています。
  • 「私の辞書に”不可能”は無い」、本当に”不可能”の文字があるか無いか捜せます。
Option Explicit


Private Sub testDictionary()
'*******************************
'Dictionary オブジェクト作成方法
'*******************************

Dim d
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "アテネ"   ' キーと項目を追加します。
d.Add "b", "ベオグラード"
d.Add "c", "カイロ"

End Sub


Private Sub TestCount()
'*******************************
'Count プロパティ
'*******************************

'コレクションの中のオブジェクト数を返す。値の取得のみ可能。
'Dictionary オブジェクトに格納される項目の数を返す。値の取得のみ可能。

'Object.Count
'object には、[対象] 一覧内のいずれかの項目の名前を指定します。


Dim a, d, i, s   ' 変数を作成します。
Set d = CreateObject("Scripting.Dictionary")
    d.Add "a", "アテネ"   ' キーと項目を追加します。
    d.Add "b", "ベオグラード"
    d.Add "c", "カイロ"
    a = d.Keys   ' キーを取得します。
        For i = 0 To d.Count - 1 ' 配列に繰り返し処理を行います。
           Debug.Print a(i)  ' 結果を返します。
        Next
'a
'B
'c
End Sub


Private Sub testItem()
'*******************************
'item プロパティ
'*******************************

'Dictionary オブジェクトにある指定されたキーと関連付ける項目を設定します。
'コレクションの場合は、指定されたキーに対応するオブジェクトを返します。
'値の取得も可能です。

'object.Item(key)[ = newitem]
'引数
'Object
'必ず指定 コレクションまたは Dictionary オブジェクトの名前を指定します。
'key
'必ず指定 取得または設定する項目に関連付けられているキーを指定します。
'newitem
'省略可能 Dictionary オブジェクトの場合のみ指定可能で、コレクションには使用できません。
'         引数 key で指定したキーに関連付ける新しい値を指定します。

'解説
'項目を変更するときに引数 key で指定したキーが見つからない場合、
'newitem で指定した項目と関連付けられた、引数 key で指定した新
'しいキーが作成されます。また、既存の項目を取得するときに引数
'key で指定したキーが見つからない場合は、空の項目と関連付けられ
'た、引数 key で指定した新しいキーが作成されます。

Dim d
Set d = CreateObject("Scripting.Dictionary")
    d.Add "a", "アテネ"   ' キーと項目を追加します。
    d.Add "b", "ベオグラード"
    d.Add "c", "カイロ"
    Debug.Print d.item("c")   ' 項目を取得します。
'カイロ
End Sub


Private Sub testkey()
'*******************************
'key プロパティ
'*******************************

'Dictionary オブジェクトにキーを設定します。

'Object.key(key) = newkey
'引数
'Object
'必ず指定 Dictionary オブジェクトの名前を指定します。
'key
'必ず指定 変更するキーの値を指定します。
'newkey
'必ず指定 引数 key で指定したキーと置き換える新しいキーを指定します。

'解説
'キーを変更するときに引数 key で指定したキーが見つからなかった場合は、
'引数 key の指定を使って、空の項目を持つ新しいキーが作成されます。

Dim d   ' 変数を作成します。
Set d = CreateObject("Scripting.Dictionary")
    d.Add "a", "アテネ"   ' キーと項目を追加します。
    d.Add "b", "ベオグラード"
    d.Add "c", "カイロ"
    d.key("c") = "d"   ' "c" のキーを "d" にセットします。
    Debug.Print d.item("d")   ' 関連した項目を返します。
'カイロ
End Sub


Private Sub testAdd()
'*******************************
'Add メソッド
'*******************************

'Dictionary オブジェクトに 1 組のキーと項目を追加します。

'object.Add (key, item)
'引数
'Object
'必ず指定 Dictionary オブジェクトの名前を指定します。
'key
'必ず指定 引数 item で指定した項目と関連付けるキーを指定します。
'item
'必ず指定 引数 key で指定したキーと関連付ける項目を指定します。

'解説
'引数 key で指定したキーが既に存在していた場合は、エラーが発生します。

Dim d
Set d = CreateObject("Scripting.Dictionary")
    d.Add "a", "アテネ"   ' キーと項目を追加します。
    d.Add "b", "ベオグラード"
    d.Add "c", "カイロ"

End Sub


Private Sub testExists()
'*******************************
'Exists メソッド
'*******************************

'指定したキーが Dictionary オブジェクト内に
'存在する場合は、真 (true) を返す。
'存在しない場合は、偽 (false) を返す。

'Object.Exists (key)
'引数
'Object
'必ず指定 Dictionary オブジェクトの名前を指定します。
'key
'必ず指定 Dictionary オブジェクト内で検索するキーの値を指定します。

Dim d, msg   ' 変数を作成します。
Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "アテネ"   ' キーと項目を追加します。
   d.Add "b", "ベオグラード"
   d.Add "c", "カイロ"
    If d.Exists("c") Then
       msg = "指定したキーは存在します。"
    Else
       msg = "指定したキーはありません。"
    End If
    Debug.Print msg
'指定したキーは存在します。
End Sub


Private Sub testItems()
'*******************************
'Items メソッド
'*******************************

'Dictionary オブジェクト内のすべての項目を格納した配列を返します。

'object.Items( )
'object には、Dictionary オブジェクトの名前を指定します。

Dim a, d, i, s   ' 変数を作成します。
Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "アテネ"   ' キーと項目を追加します。
   d.Add "b", "ベオグラード"
   d.Add "c", "カイロ"
   a = d.Items   ' 項目を取得します。
    For i = 0 To d.Count - 1 ' 取得した配列に繰り返し処理を行います。
       Debug.Print a(i) ' 結果を返します。
    Next
'アテネ
'ベオグラード
'カイロ
End Sub


Private Sub testKeys()
'*******************************
'Keys メソッド
'*******************************

'Dictionary オブジェクト内のすべての既存キーを格納した配列を返します。

'object.Keys( )
'object には、Dictionary オブジェクトの名前を指定します。

Dim a, d, i   ' 変数を作成します。
Set d = CreateObject("Scripting.Dictionary")
   d.Add "a", "アテネ"   ' キーと項目を追加します。
   d.Add "b", "ベオグラード"
   d.Add "c", "カイロ"
   a = d.Keys   ' キーを取得します。
    For i = 0 To d.Count - 1 ' 取得した配列に繰り返し処理を行います。
       Debug.Print a(i)  ' 結果を返します。
    Next
'a
'B
'c
End Sub


Private Sub testRemove()
'*******************************
'Remove メソッド
'*******************************

'Dictionary オブジェクトからキーと項目の組みを削除します。

'Object.Remove (key)
'引数
'Object
'必ず指定 Dictionary オブジェクトの名前を指定します。
'key
'必ず指定 Dictionary オブジェクトから削除するキーと項目の組みと
'                    関連付けられた引数 key を指定します。
'解説
'存在しないキーを指定した場合は、エラーが発生します。

Dim a, d, i  ' 変数を作成します。
Set d = CreateObject("Scripting.Dictionary")
    d.Add "a", "アテネ"   ' キーと項目を追加します。
    d.Add "b", "ベオグラード"
    d.Add "c", "カイロ"

    d.Remove ("b")  '  2 つ目の組を削除します。

    a = d.Items   ' 項目を取得します。
    For i = 0 To d.Count - 1 ' 配列に繰り返し処理を行います。
       Debug.Print a(i)  ' 結果を返します。
    Next
'アテネ
'カイロ
End Sub


Private Sub testRemoveAll()
'*******************************
'RemoveAll メソッド
'*******************************

'Dictionary オブジェクトからすべてのキーと項目を削除します。

'object.RemoveAll( )
'object には、Dictionary オブジェクトの名前を指定します。

Dim a, d, i   ' 変数を作成します。
Set d = CreateObject("Scripting.Dictionary")
    d.Add "a", "アテネ"   ' キーと項目を追加します。
    d.Add "b", "ベオグラード"
    d.Add "c", "カイロ"

    a = d.RemoveAll   ' // 辞書をクリアします。

    Debug.Print d.Count   ' 結果を返します。
' 0
End Sub

 

2000年01月01日|[VBサンプルコード]:[Dictionary]