• ベストアンサー

セルに多次元配列の値を入力する方法

 Dim A as Variant A = Range(Cells(1,1),Cells(10,2)) としてセルのデータを配列変数に格納した場合  Range(Cells(1,2),Cells(10,2)) を  Range(Cells(1,3),Cells(10,3)) に入力するとき  Aを用いて一発で入力する方法はないですか?  今は For i = 1 to 10 cells(i,3) = A(i,2) Next  という方法しか思いつかないのですが時間がかかります。 良い方法があれば教えてください!

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

Range(Cells(1, 3), Cells(10, 3)).Value = _ Application.Index(A, 0, 2) こんな感じでしょうか。

okranta
質問者

お礼

 返事が遅くなってすみません。Application.Indexという方法があるんですね。応用で使ってみるとエラーが出てしまうんですが、何とか解消してみます。どうもありがとうございました!

その他の回答 (3)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.4

#1です 寝ぼけていたようです m(__)m バリアントの配列なら #2氏の回答でよさそうですよ AをRangeオブジェクトとして Range(Cells(1,3), Cells(10,3)).Value = InterSect(A, Range("B:B")).Value といった具合で ・・・

okranta
質問者

お礼

  返事が遅くなってすみません。InterSectという方法もあるんですね。色々と試してみようと思います。どうもありがとうございました!

  • keirika
  • ベストアンサー率42% (279/658)
回答No.3

Sub Sample() Dim A As Range Set A = Range(Cells(1, 1), Cells(10, 2)) A.Columns(2).Copy Destination:=Cells(1, 3) End Sub でどうでしょう。

okranta
質問者

補足

 連絡が遅くなってすみません。色々な方法があるんですね。実際に使用しているのはもっと複雑なプログラムになっているので、どれが一番有効か試してみます。どうもありがとうございました!

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

Range(Cells(1,3),Cells(10,3)).Value = A で可能だと思います

okranta
質問者

補足

Range(Cells(1,3),Cells(10,3)).Value = A とすると Range(Cells(1,3),Cells(10,3)) には Range(Cells(1,1),Cells(10,1)) のデータが入ってしまいませんか? Range(Cells(1,2),Cells(10,2)) のデータを入れたいのですが...

関連するQ&A