-PR-
解決済み

excel vba セルへの一括挿入

  • すぐに回答を!
  • 質問No.76722
  • 閲覧数314
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 40% (36/88)

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に対して配列値を代入する形になると思うのすが、記述の仕方がわかりません。

お分かりになる方が見えましたら、ご教授願います。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル11

ベストアンサー率 49% (139/279)

行単位どころか、範囲でできます。

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

お礼率 40% (36/88)

ありがとうございます。

早速、試してみたのですが、指定したセルに挿入されません。
以下のように記述すると、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にデータが挿入されました。

よくみると、遇数列を飛ばしていることに気がついたのですが、
なぜなのでしょうか?
投稿日時 - 2001-05-16 14:02:45
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル5

ベストアンサー率 20% (1/5)

セル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のテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ