プロが教える店舗&オフィスのセキュリティ対策術

宜しくお願いします。
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列づつコピーしては貼り付けている状態です。
もっとスマートな方法がありましたら教えてください。
宜しくお願いします。

A 回答 (1件)

    • good
    • 0
この回答へのお礼

回答ありがとうございました。
参考サイトを拝見させていただきました。
その中の、
Range("B1:B3").Value = Range("A1:A3").Value 
というコードを参考にしましたところ、スムーズに処理ができました。
一行で済んでびっくりです!
ありがとうございました。

お礼日時:2008/05/31 14:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!