VBAにて下記実装を行いました。
VBA
1Dim dictionary As Variant 2Set dictionary = CreateObject("Scripting.Dictionary") 3 4Dim hogeIndex As Integer 5Dim hogeString As String 6 7For hogeIndex = 1 To 10 8 hogeString = sheet1.cells(hogeIndex,1) 9 If Not dictionary.Exists(hogeString ) Then 10 dictionary.Add hogeString , hogeString 11 End If 12Next 13
上記コンパイルは通っている状態です。
ここでdictionaryにAddしたitemをループで取得したいのですが、
下記サイトの情報通りの実装を行っても値取得ができません。
http://www.excel-wing.com/study/jitumu/970
VBA
1Dim hugeIndex As Integer 2For hugeIndex = 0 To 10 3 Debug.Print(dictionary.Items(hugeIndex)) 4Next
dictionary.Itemsだとコンパイルエラー、dictionary.Itemだとコンパイルエラーは出ませんが、値取得は出来ない。
また、dictionaryにAddしてからDebug.Pintでdictionaryを出力しようてしている処理までの流れでdictionaryのオブジェクト破棄は行っていません。
dictionaryに追加したItemをkeyなど関係なく、Addした順番で出力したいのですが、
どのように実装すればよろしいでしょうか。
よろしくお願いいたします。
追記。
dictionary.Items(0)で出力しようとした際のエラーメッセージは下記になります。
【Proparty Let プロシージャが定義されておらず、Property Getプロシージャからオブジェクトが返却されませんでした。】

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/23 02:18