VB6 リファレンス お品書き へ戻ります
Visual Basic6 リファレンス


VB6 配列操作(Dictionaryオブジェクト)
DictionaryオブジェクトはハッシュテーブルのようにKeyに対するItemを持つことができるオブジェクトです。

[参照設定]
Microsoft Scripting Runtime (scrrun.dll)

[変数宣言]
Dim dc As New Scripting.Dictionary

お品書き
● サンプルデータのセット、参照、追加、変更のサンプルプログラム
● Addキーと項目の追加
● CompareMode比較モードの設定/取得
● Count項目の数の取得
● Existsキーが存在するか調べる
● Itemキーに関連付けされた項目の変更/取得
● Items項目の配列を返す
● Keyキーを変更する
● Keysキーの配列を返す
● Removeキーを削除
● RemoveAllキーを全て削除


● データのセット、参照、追加、変更のサンプルプログラム

Private Sub Sample()

    Dim dc As New Scripting.Dictionary     'キー:商品コード、項目:商品名
    Dim i

    dc.Add "A0001", "あんまん"       'キーと項目を追加します。
    dc.Add "A0002", "ジャムパン"     'キーと項目を追加します。
    dc.Add "A0003", "メロンパン"     'キーと項目を追加します。
    dc.Add "A0004", "カレーパン"     'キーと項目を追加します。

    If (dc.Exists("A0001")) Then         'キー"A0001"が存在した
        dc.Item("A0001") = "あんパン"   'キー"A0001"の項目を"あんパン"へ変更します。
    Else                                         'キー"A0001"が存在しない
        dc.Add "A0001", "あんパン"        'キーと項目を追加します。
    End If

    If (dc.Exists("A0002")) Then     'キー"A0002"が存在した
        dc.Remove ("A0002")           'キー"A0002"を削除します。
    End If

    For i = 0 To dc.Count - 1     '格納されている項目の数だけループします。
        Debug.Print dc.Keys(i) & " = " & dc.Item(dc.Keys(i))
    Next

End Sub

実行結果 A0001 = あんパン
A0003 = メロンパン
A0004 = カレーパン


● Add メソッド
【機能】Dictionaryオブジェクトにキーおよび項目を追加します。
【書式】dc.Add キー , 項目
【 例 】Dim dc As New Scripting.Dictionary
dc.Add "A0001" , "あんパン"
dc.Add "A0002" , "ジャムパン"

  ※ キーが既に存在している場合は エラーが発生します。


● CompareMode プロパティ
【機能】比較モードを設定します。値の取得も可能です。
【書式】dc.CompareMode = 比較モード
比較モード説明
vbUseCompareOptionOption Compare ステートメントの設定を使用して比較する。
vbBinaryCompareバイナリモードで比較する。
vbTextCompareテキストモードで比較する。
vbDatabaseCompareデータベースに格納されている設定で比較する。
【 例 】Dim dc As New Scripting.Dictionary
dc.CompareMode = vbTextCompare

  ※ キーをセットした後で比較モードを設定するとエラーが発生します。


● Count プロパティ
【機能】格納されている項目の数を返します。
【書式】result = dc.Count
【 例 】 Dim dc As New Scripting.Dictionary
dc.Add "A0001" , "あんパン"
dc.Add "A0002" , "ジャムパン"
dc.Add "A0003" , "メロンパン"
For i = 0 To dc.Count - 1
    Debug.Print dc.Keys(i) & " " & dc.Item(dc.Keys(i))
Next

実行結果A0001 あんパン
A0002 ジャムパン
A0003 メロンパン

dc.Count3


● Exists メソッド
【機能】指定のキーが存在するかチェックします。
【書式】result = dc.Exists ( キー )
【戻り値】True
False
存在する。
存在しない。
【 例 】 Dim dc As New Scripting.Dictionary
If (dc.Exists("A0001")) Then       '存在した
    dc.Item("A0001") = "あんパン" '変更
Else
    dc.Add "A0001" , "あんパン"     '追加
End If


● Item プロパティ
【機能】指定したキーの項目を変更します。値の取得も可能です。
【書式】
【書式】
dc.Item(キー) = 項目
項目 = dc.Item(キー)
【 例 】 Dim dc As New Scripting.Dictionary
dc.item("A0001") = "あんパン"
Debug.Print dc.item("A0001")

  ※ 変更時に指定したキーが存在しない場合は、キーが作成されて、項目がセットされます。
  ※ 参照時に指定したキーが存在しない場合も、キーが作成されて、項目に空がセットされます。


● Items メソッド
【機能】項目の配列を返します。
【書式】result = dc.Items (index)
【 例 】 Dim dc As New Scripting.Dictionary
dc.Add "A0001" , "あんパン"
dc.Add "A0002" , "ジャムパン"
dc.Add "A0003" , "メロンパン"
For i = 0 To dc.Count - 1
    Debug.Print dc.Items(i)
Next

実行結果あんパン
ジャムパン
メロンパン


● Key プロパティ
【機能】キーを変更します。
【書式】dc.Key(キー) = 新キー
【 例 】dc.Key("A0001") = "A0010"

  ※ 指定したキーが存在しない場合は、エラーが発生します。


● Keys メソッド
【機能】キーの配列を返します。
【書式】result = dc.Keys (index)
【 例 】 Dim dc As New Scripting.Dictionary
dc.Add "A0001" , "あんパン"
dc.Add "A0002" , "ジャムパン"
dc.Add "A0003" , "メロンパン"
For i = 0 To dc.Count - 1
    Debug.Print dc.Keys(i)
Next

実行結果A0001
A0002
A0003


● Remove メソッド
【機能】キーを削除します。
【書式】dc.Remove(キー)
【 例 】 Dim dc As New Scripting.Dictionary
dc.Add "A0001" , "あんパン"
If (dc.Exists("A0001")) Then   'キー"A0001"が存在した
    dc.Remove ("A0001")        'キー"A0001"を削除
End If

  ※ 指定したキーが存在しない場合は、エラーが発生します。


● RemoveAll メソッド
【機能】すべてのキーを削除します。
【書式】dc.RemoveALL
【 例 】 Dim dc As New Scripting.Dictionary
dc.Add "A0001" , "あんパン"
dc.Add "A0002" , "ジャムパン"
dc.Add "A0003" , "メロンパン"
dc.RemoveALL     'クリア