dポイントプレゼントキャンペーン実施中!

以下のデータがあり、これをExcel VBAの連想配列として格納したいと考えています。
MsgBoxでキーとアイテムを表示させると表示されるのですが、
最後に一例としてExistsで確認するとFalseが返ってきます。
これは配列に格納されていないのでしょうか。
また格納されていないとすると、どうすれば格納できるのでしょうか。
A 列   B列
35   apple
37   orange
40   banana
以下がコードです。
sub test()
Dim i as integer
Dim myDic as Object
Dim keys as Variant

Set myDic = CreateObject("Scripting.Dictionary")

For i = 1 to 3
myDic.Add Cells(i, 1), Cells(i, 2)
Next i

keys = myDic.keys
For Each keys In myDic
MsgBox "キー名:" & keys & vbCr & "値:" & myDic.Item(keys)
Next keys

MsgBox myDic.Exists(35)
End Sub

A 回答 (1件)

変更前:


myDic.Add Cells(i, 1), Cells(i, 2)

変更後:
myDic.Add Cells(i, 1).value, Cells(i, 2)


#実行中にローカルウィンドウでmyDicの中身を確認しながら(つまりデバッグしながら=ステップ実行しながら)進めてみると,セル自体をキー値として格納している様子を確認できます。
変更後と見比べてみると判りやすいかと。
    • good
    • 0
この回答へのお礼

ありがとうございます。
少し前からいろんなサイトをみて勉強していたのですが、
ローカルウィンドウというもを知らずにやってました。
今後のエラーへの対応にすごく役に立ちそうです。
ありがとうございました。

お礼日時:2010/06/12 06:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!