こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAでコピーペーストのやり方を教えてください。

エクセルの他のブックの中に複数のシートがあり、そこから任意の複数のシートの任意の範囲をコピーペーストするやり方を教えてください。できればマクロに記録したいです。

例えば、あいう.xlsというファイルにデータが入っていて、シートは、
sheet1~sheet20まであるとします。
そこから今回はsheet2のC20~E500とsheet4のC20~E500までを、かきく.xlsというファイルのsheet1にコピペしたい。
かきく.xlsのsheet1のA1~C500にあいう.xlsのsheet2のC20~E500を貼りつけ、A501~C980にあいう.xlsのsheet4のC20~E500を貼りつけるというようにしたいです。
毎回列と行の範囲はどこのシートでもC20~E500で決まっているのですが、毎回sheet2とsheet4の範囲をコピペするわけではありません。
次回はsheet1~sheet19までの範囲かもしれません。
シートを選べ、1つのシートにまとめてコピペをしてくれるようなマクロを知りたいです。
エクセルは2003もしくは2007を使っています。
よろしくお願い致します。

投稿日時 - 2008-01-29 13:55:25

QNo.3724520

困ってます

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

Sub try()
 Dim ws1 As Worksheet
 Dim wsA As Worksheet
 Dim r1 As Range, r2 As Range

 '貼り付け先のブック名とシート名
 Set ws1 = Workbooks("Book1.xls").Worksheets("Sheet1")
 Set r1 = ws1.Range("A1")

 For Each wsA In ActiveWindow.SelectedSheets
     Set r2 = wsA.Range("D10:K20") '貼り付け元の範囲
     r1.Resize(r2.Rows.Count, r2.Columns.Count).Value = r2.Value
     Set r1 = r1.Offset(15) '貼り付け先のオフセット(500?)
 Next
End Sub

貼り付け元Bookの標準モジュールにコピペして、
貼り付けたいシートをCtrlキーを押しながらクリックしてから、
マクロを実行。
必要な部分は修正願います。

投稿日時 - 2008-01-29 22:49:39

お礼

ありがとうございました!
コピペしてできました!!!

投稿日時 - 2008-01-30 19:23:18

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問