• ベストアンサー

excel vba セルへの一括挿入

Excel+VBで簡単なシステムを作成しております。 VBでテキストファイルを読み込み、ある桁数で分割して2次元配列に格納しています。(行:レコード 列:カラム) 現在は、要素ごとにセルを指定して挿入しているのですが、レスポンス向上のため、行単位でセルに挿入できると聞きました。 具体的には以下です。 配列 (0,0)="A" (0,1)="AA" (0,2)="AAA" (1,0)="B" (1,1)="BB" (1,2)="BBB" (0,0)をセルA1に、(0,1)をセルC1に、(0,0)をセルE1に1文で挿入。 もちろん、セルA1:E1に対して配列値を代入する形になると思うのすが、記述の仕方がわかりません。 お分かりになる方が見えましたら、ご教授願います。

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

  • ベストアンサー
  • arata
  • ベストアンサー率49% (139/279)
回答No.2

行単位どころか、範囲でできます。 Dim a(1, 2) a(0, 0) = "1" a(0, 1) = "2" a(0, 2) = "3" a(1, 0) = "4" a(1, 1) = "5" a(1, 2) = "6" With ThisWorkbook.Worksheets(1).Range("A1") .Range(.Offset(0, 0), .Offset(1, 2)).Value = a End With こんなかんじですね。

forester
質問者

補足

ありがとうございます。 早速、試してみたのですが、指定したセルに挿入されません。 以下のように記述すると、A5にデータが挿入されてしまいました。 With xl.Application.Sheets("DATA").Range("A3") .Range(.Offset(0, 0), .Offset(0, 19)).Value = StrEspData End With また、 With xl.Application.Sheets("DATA").Range("A7") .Range(.Offset(0, 0), .Offset(0, 19)).Value = StrEspData End With と記述したら、A13にデータが挿入されました。 よくみると、遇数列を飛ばしていることに気がついたのですが、 なぜなのでしょうか?

その他の回答 (1)

回答No.1

セルA1:E1に代入する時にB1, D1の内容は保持したほうが いいでしょうか? クリアしてもいいよ,というのであれば Dim x(0,2) as String x(0, 0) = "A" x(0, 1) = "AA" x(0, 2) = "AAA" Range("A1:E1") = Array(x(0,0), , x(0,1), , x(0,2)) ではどうでしょう。 すいません。 Excelはあまり使ったことないのでレスポンス向上の効果までは 考えてないです。

関連するQ&A