指定セル範囲を別のブックのシートにコピーするには?

Question 54.6 Previous Next
詳細は こちら 500連発(第1弾)315番の「コピーして全て貼り付ける」について質問します。
ワークシートの指定された範囲のセルの内容を別のブックのシートにコピーする場合は、
どのようにすればよろしいのでしょうか?
Answer   Copyright (C) 2002.8.26 永井善王
そのマクロの内容は、セル範囲を変数で指定してコピーし、変数で指定したセルを左上角として貼り付けるというもので、コードの概要は以下のとおりです。
Sub おためしマクロ315()
    Worksheets("S315").Activate
    コピー範囲左上 = "D5"
    コピー範囲右下 = "J7"
    貼付位置 = "D9"
    コピーしてすべて貼り付ける_A1指定
End Sub

Private Sub コピーしてすべて貼り付ける_A1指定()
    Range(コピー範囲左上 & ":" & コピー範囲右下).Copy 'コピー
    Range(貼付位置).PasteSpecial Paste:=xlAll   '★★★ すべて貼り付け
End Sub
このマクロを別のブックのシートへ貼り付けるように改良したいという、ご希望でしょうか。

これについては、このHPの「コピー」のページに掲載している 「すべてコピーする」の中に下記のマクロがあります。
Sub クリップボードを経由せずにコピー貼り付けする_異なるブック()
    Workbooks("BBB.xls").Worksheets("SSS").Range("A1:C3").Copy _
    Workbooks("BB2.xls").Worksheets("SS2").Range("A4") '※1、2、3、4
End Sub
これを参考にして 315番のマクロを改良すると、次のようになります。
Private Sub コピーしてすべて貼り付ける_A1指定()
  Workbooks("315.xls").Worksheets("S315").Range(コピー範囲左上 & ":" _
    & コピー範囲右下).Copy _
  Workbooks("New.xls").Worksheets("Sheet1").Range(貼付位置) '★★★すべて貼り付け
End Sub
改良したマクロは、コピー元が 315.xlsの S315シート、コピー先が New.xlsの Sheet1となっていますが、このブック名とシート名は状況に合わせて変更してください。

 

Excel VBA Macro