Dictionary の Key プロパティ について

解決


まさお  2005-06-30 14:48:31  No: 90748  IP: [192.*.*.*]

まさお  と申します。  宜しくお願い致します。

  WinXP Pro SP1, VB6 SP6 です。

  Dictionaryオブジェクト の Keyプロパティについて教えて下さい。

  ヘルプに「Dictionary オブジェクトにキーを設定します。値の取得も可能です。」とあります。
  値の取得方法が判りません。

  Dim Dict As New Dictionary
  Dim sKey As String

  Dict.Add Key:="abc", Item:="123"
  sKey = Dict.Keys(0)
  Dict.Key(sKey) = "def"   'キーを設定
  sKey = Dict.Keys(0)
  MsgBox sKey

で、"def" になっているので、「キーを設定します」は判ります。
  しかし、続けて、
  MsgBox Dict.key(sKey)
とすると、「コンパイルエラー  プロパティ使い方不正」となります。

  Keyプロパティにおける「値の取得」はどのようにすれば良いのでしょうか?

  以上、宜しくお願い致します。

編集 削除
魔界の仮面弁士  2005-06-30 16:06:16  No: 90749  IP: [192.*.*.*]

> ヘルプに「Dictionary オブジェクトにキーを設定します。値の取得も可能です。」とあります。
ヘルプのミスでしょうね。
手許の SCRRUN.DLL の中身を確認してみましたが、IDictionary.Key は、
「Property Let」しか実装されていない「代入専用プロパティ」でした。

(IDictionary.Item の方は、「Property Let/Get/Set」が実装されていましたが)

>  sKey = Dict.Keys(0)
ちなみに、レイトバインドの時は、
  sKey = Dict.Keys()(0)
のように指定しないと、取得できなかったりします。

編集 削除
まさお  2005-06-30 17:21:58  No: 90750  IP: [192.*.*.*]

魔界の仮面弁士  さん、ありがとうございます。

> ヘルプのミスでしょうね。
判りました。  ありがとうございました。

> ちなみに、レイトバインドの時は、
も、ありがとうございました。

編集 削除