| 
    
     |  | ▼T.K さん: 
 >全解説を読んで、非常に分かりやすかったです、
 
 >>'------------------------------------------------------- (code)
 >>>   For i = 1 To UBound(v)
 >>>     If Not dic.Exists(v(i, 1)) Then
 >>>       Set dic(v(i, 1)) = _
 >>>         CreateObject("Scripting.Dictionary")
 >>>     End If
 >>>     dic(v(i, 1))(v(i, 4)) = Array(v(i, 2), v(i, 3))
 >>>   Next
 >>'-----------------------------------------------------------
 >上記の部分で、
 >Set dic(v(i, 1)) = _
 >  CreateObject("Scripting.Dictionary")
 >で = _のこのアンダーバーはdicにdicを入れる際の仕様ですか?dicにitemを入れるときは特に_が必要でないと他の例をみると思ったので。
 
 【72632】------------------------------------------------------
 > ● _ は 直前の半角スペースといっしょになって、単に改行している
 >   ところです。ですから
 >>      Set dic(v(i, 1)) = _
 >>        CreateObject("Scripting.Dictionary")
 >は 単に
 
 >    Set dic(v(i, 1)) = CreateObject("Scripting.Dictionary")
 
 >という一行を(一行にすると掲示板上で強制改行されて読みにくくなる
 >恐れがあるので) _を使って改行した、ということです。
 
 
 >>最後に メモリ内のvv配列をシートの(2行目,4列目)以降に貼り
 >>付けます.
 >>    ↓範囲r内の 2行目4列目のセルのこと
 >>>   r.Item(2, 4).Resize(UBound(vv)).Value = vv
 >>             ↑vvの最大要素数で 3 が返る
 >r.Item(2, 4)は範囲r内の 2行目4列目のセルのことというのは分かります。
 > ここから貼りつける、ただその後の.Resize(UBound(vv)).Value = vv
 > についていまいち分かりません、
 > なぜResizeするのか?
 > 結果として、2行目4列目からvvの値を貼り付けていくという事なんだと
 > 理解しているのですが、
 
 単に
 r.Item(2, 4).Value = vv
 
 とやっただけだと、配列vv の行数が 1以上あっても、
 r.Item(2, 4)  という単一セルに配列vv の最初の要素が貼り付け
 られるだけです。
 
 配列vv の要素数が3 だったら、
 r.Item(2, 4).Resize(3).Value = vv
 としないと3行分貼り付きません。
 
 一般に、
 >>>   r.Item(2, 4).Resize(UBound(vv)).Value = vv
 >>             ↑vvの要素数
 としないと、複数要素が貼り付けられません。
 
 |  |