• ベストアンサー

excel vba 配列の一部 一気に書き出し

Excel VBAの配列の一部分をワークシートのセルに一気に書き出す方法を教えてください。 Dim A(12000,100) as double があります。 この中の A(1 ~ 12000 , 10) を ワークシートの cells(11,3) へ一気に縦方向に書き出したいのですが(B11から縦方向)、やり方を教えていただけないでしょうか。 cellsとしているのは、あとで 11,3 などを変数で指定したいためです。 doubleでダメな場合は、variantでもOKです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • f272
  • ベストアンサー率46% (8621/18439)
回答No.2

配列の宣言を Dim A(1 To 12000, 1 To 100) As Double にして, Cells(11, 2).Resize(UBound(A, 1), 1) = Application.Index(A, 0, 10) で書き出せばいいんじゃないの?

その他の回答 (1)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

>B11から縦方向 という事であれば、cells(11,3)ではなくCells(11,2)になります。  それで御質問の件ですが、最も簡単なやり方はFor~To~Nextを使った方法です。  まず、 Dim A(12000,100) as double の所を Dim A(12000,100) as double, i As Long に変更した上で、 配列を書き出す部分を次の様にして下さい。 For i = 1To 12000 Cells(11,2).Offset( i -1 ).Value = A( i,100) Next i  尚、Cells(11,2).Offset( i -1 )の代わりにCells(10+i,2)としても構いません。

関連するQ&A