• ベストアンサー

VBAでコピーしたものを下に貼り付ける方法

VBAでしていした範囲をコピーして、指定した範囲に貼り付けたいと思っています。コピーはできたのですが、指定したところに貼り付けることがうまくできません。貼り付けはA1から下に向かってA31までに行いたいのですが。 誰かお分かりになる方アドバイスお願いします。

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

  • ベストアンサー
回答No.2

なるほど、さらにわからなくなりましたね。 TRANSPOSEは「行列を入れ替える」ために使います。 で、お調べになったのならサンプルも見つかっているはず。 ということで、もう少し ・現状(いじる前) ・結果(いじった後) について詳しく補足ください。 モノによってはお手伝いできるかもしれません。 モノによってはお手伝いできないかもしれません。

ppcz80p1
質問者

お礼

アドバイスいただきありがとうございました。 下記の内容で問題を解決することができました。 ありがとうございました。 Range("A1:A31").Select Selection.FormulaArray = "=TRANSPOSE(R[33]C[1]:R[33]C[31])" Range("B1:B31").Select Selection.FormulaArray = "=TRANSPOSE(R[34]C:R[34]C[30])" Range("C1:C31").Select Selection.FormulaArray = "=TRANSPOSE(R[35]C[-1]:R[35]C[29])" ... 続く

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

模擬実例を質問に書いて、 初めのシートのセルの状態と、貼り付け後の、なってほしいセルの状況を書かないで質問しているから、読者に意図がはっきりしないのだ。 ーー A1:D1に 田中 山田 西村 木村 のデータがあるとします。 標準モジュールに Sub Sample2() Dim buf As Variant buf = Range("A1:D1") Range("A2:A5") = WorksheetFunction.Transpose(buf) End Sub ーー 実行結果 A2:A5が 田中 山田 西村 木村 になった。こういうのが参考になるだろう。 TRANSPOSE関数まで、行きついているなら、Googleででも 「VBA TRANSPOSE関数」で照会すれば仕舞だろう。 そういう方法を知らないと、しょっちゅう、この後行き詰まるよ。

回答No.1

条件がよくわからないので、一般的なコピー貼り付けの例。   Range("A1").Copy Range("A1:A31") A1セルをコピーして、A1:A31の範囲に貼り付けます。 繰り返しますが、条件がわかりませんので、アレンジはご自身でどうぞ。

ppcz80p1
質問者

補足

アドバイスを頂きありがとうございます。 私なりに調べてみたのですが、「=TRANSPOSE」を使って行うようなのですが、エラーが出てしまいうまくいきません。 =TRANSPOSEを使ったサンプルプログラム等ご教授いただけないでしょうか?

関連するQ&A