※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 他のシートからセル範囲をコピー)
Excel VBA 他のシートからセル範囲を簡単にコピーする方法
Excel VBA 他のシートからセル範囲をコピー
宜しくお願いします。
Excel2003でVBAを利用しています。
他のブック内にある(sheet1)のセル範囲(B9:D64)の値を
現在開いているブック内の(sheet8)の指定した位置に貼り付けたいと
思っています。
コピーしたセルはB,C,Dと3列あるのですが、
B列を(sheet8)のB列に、C列を(sheet8)のF列に、
D列を(sheet8)のJ列のそれぞれ12行目を頭にして
貼り付ける、という作業をしたいのです。
上記のようなコピー作業が、列や行がばらばらで50箇所くらい
あります。
マクロ記録で、2,3箇所試しにやってみたのですが、
1列づつ、クリップボードを経由して行わなければならず、
冗長なコードになってしまい、もっと良い方法があるのでは
ないかと思い、書込みしました。
現在のコードです。
workbook(1).Activate 'コピー元のセルを選択してクリップボードへ
Worksheets(sheet1).Range("B9:B64").Copy '1枚目 日付列
'現在のブックを選択して貼り付け
ThisWorkbook.Activate
Range("B12").Select '1枚目 日付列
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False '形式を選択して値を貼り付け
上記のように、1列づつコピーしては貼り付けている状態です。
もっとスマートな方法がありましたら教えてください。
宜しくお願いします。
お礼
回答ありがとうございました。 参考サイトを拝見させていただきました。 その中の、 Range("B1:B3").Value = Range("A1:A3").Value というコードを参考にしましたところ、スムーズに処理ができました。 一行で済んでびっくりです! ありがとうございました。