| 
    
     |  | ▼γ さん: >こんにちは。
 >
 >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)"の部分がわかりません
 
 |  |