|
▼γ さん:
>こんにちは。
>
>Dictionaryというのは、Keyと値の組み(対応関係)を管理する容れ物です。
>
>> fDic(com & dt) = VBA.Array(c.Value, c.Address(External:=True))
> この例では、
> 品番に日付数値を連結した文字列 を Key とし、
> 値とアドレス文字列からなる配列 を 値 とした対応関係です。
>
> "ABC41621" ---> Array(100,"[Book1]Sheet1!$A$1")
> "ABC41622" ---> Array(200,"[Book1]Sheet1!$A$2")
> "ABC41623" ---> Array(300,"[Book1]Sheet1!$A$3")
>
>> 片方はObject型で片方はVariant型で型が違うのですがOKなのでしょうか?
>型に注目されているようですが、
> ・Dictionaryという、対応関係を入れた容れ物そのものがObject型 ということと
> ・Dictionaryの値が、配列が格納されたVariant型 ということは、
>なんら矛盾することなく成立することですよね。
>
>何事もおろそかにしない姿勢はすばらしいと思いました。
>上記の説明で、Dictionaryの考え方を理解する参考になるでしょうか。
早速の返事ありがとうございます
考えが整理できていないなかった為返事遅くなりました。申し訳ありません
以前解説していただいた部分である程度上記の部分と同じイメージ
でした
とりあえず的外れの言論でしたら最初に謝ります
自分なりにわからない部分を整理してみます
1. fDic(com & dt) = VBA.Array(c.Value, c.Address(External:=True))
上記文の中の
fDic(com & dt)の部分本来KeyやItemを追加する場合
Addメソッド等でKeyやItemを格納すると思うのですが
上記文はすでにkeyが格納されているところが不明
2.com & dtでA列の値と1行目の日付け数値(シリアル値)の連結したものを
KeyとしDictionaryに格納、ArrayでAddressと
値の要素を格納して対応関係を表すまではわかるのですが
パソコン自体どのようにこれが対応していると判断しているかの
イメージがつかめていません
一つ一つのデータで考えてしまっているのでおかしな解釈なのかもしれませんが・・・?
配列が苦手なのはこの理解の部分です
3.for each dkey in fdic
if fdic.exists(dkey)then
range(tdic(dkey)(1)).value=range(tdic(dkey)(1).value
変数dkeyがある場合Sheet2~shhet1へ転記
簡単にはそんな文だと思いますが
この部分のRange(Tdic(dkey)(1))の"(1)"の部分がわかりません
|
|