『データの変更ができません。』(友香)
どこがおかしいのでしょうか?
下記のプログラムにおいて
dic("A")(0)が1ではなく0のままです。
Dim dic As Dictionary: Set dic = New Dictionary Dim ary As ArrayList: Set ary = New ArrayList
Call dic.Add("A", Array(0, ary)) dic("A")(0) = dic("A")(0) + 1 Debug.Print dic("A")(0)
< 使用 Excel:Excel2019、使用 OS:Windows11 >
m(__)m
(隠居Z) 2025/06/16(月) 10:56:48
dictionaryのitemを配列にした場合、その要素がObject以外であれば一旦配列を変数にして更新してから再登録 例 Call dic.Add("A", Array(0, ary)) Dim w w = dic("A") w(0) = w(0) + 1 dic("A") = w Debug.Print dic("A")(0) dic("A")(1).Add "X" Debug.Print dic("A")(1).Count
注意点 aryには"X"が既に登録されています 新たにBを下記のように登録した場合、aryは"A"で登録されたものを参照することになります。 dic("B") = Array(0, ary) (jindon) 2025/06/16(月) 11:18:19
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.