| 
    
     |  | ▼ichinose さん: おはようございます。
 >>ですが、なぜ、行列を入れ替えると、一次元になるんでしょう???
 がわかったわけではありませんが、Trannspose関数も追伸。
 
 >Sub sample()
 >  Dim myvalue As Variant
 >  myvalue = Application.Transpose(Range("a1:a10").Value)
 >  For g0 = LBound(myvalue) To UBound(myvalue)
 >   MsgBox myvalue(g0)
 >   Next
 >End Sub
 
 は、myvalue(1 to 10,1)の配列の一次元への変換でしたが、
 
 range("a1:j1")を一次元配列に格納するには??
 '====================================
 Sub sample2()
 Dim myvalue1 As Variant
 Dim myvalue2 As Variant
 Range("a1:j1").Value = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
 myvalue1 = Range("a1:j1").Value
 For g0 = LBound(myvalue1, 2) To UBound(myvalue1, 2)
 MsgBox "myvalue1(1," & g0 & ")= " & myvalue1(1, g0)
 Next
 'そのまま移行するとMyvalue(1 to 1,1 to 10)の2次元配列ですが
 
 With Application
 myvalue2 = .Transpose(.Transpose(Range("a1:j1").Value))
 End With
 '↑のようにTransposeに2回通すと一次元配列にしてくれます。
 For g0 = LBound(myvalue2) To UBound(myvalue2)
 MsgBox "myvalue2(" & g0 & ")= " & myvalue2(g0)
 Next
 End Sub
 
 実行してみて下さい。
 
 
 但し、このTranspose関数Excel2000では
 配列は、添え字の上限は5xxxまでです。
 Excel2002以降でも 65536です。
 ここに関連トピックがありますから
 参考にして下さい。
 
 http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=18896;id=excel
 
 |  |