| 
    
     |  | kawataです、よろしくお願いします。 (Windows2000/Excel2000)
 
 セルのデータを加工するのに、これまではセルデータを直に
 読んで書いてとやっておりましたが、ここにきて、ようやく
 配列に手を出しはじめました(^^;。
 望むように動作すれば圧倒的な速度差に感激しております。
 
 で、いろいろ勉強のためにテストしているのですが、
 
 Sub test()
 Dim aaa() As Variant
 With Sheets("sheet1").Range("a1:a20")
 aaa = .Value
 For i = 1 To UBound(aaa)
 aaa(i, 1) = "済" & aaa(i, 1)
 Next
 .Value = aaa
 End With
 End Sub
 
 「test」は問題なく動作します、これを・・・・・
 
 Sub test2()
 Dim aaa() As Variant
 Dim bbb() As Variant
 With Sheets("sheet1").Range("a1:a20")
 aaa = .Value
 ReDim bbb(UBound(aaa), 1)
 For i = 1 To UBound(aaa)
 bbb(i, 1) = "済" & aaa(i, 1)
 '      Debug.Print bbb(i, 1)
 Next
 .Value = bbb
 End With
 End Sub
 
 のようにすると、Range("a1:a20")は全部消えてしまいます。
 根本的なところで配列の理解ができていないように思います(^^;。
 
 とんちんかんな質問をしているのかどうかも自分で判断できません。
 ぜひ、よろしくお願いします。
 ※Debug.Print bbb(i, 1)で中身は確認できているのですけども・・。
 
 |  |