4.4 ワークシートをコピーする
ワークブック内の特定のシートを自分自身内でコピーする場合や、他のワークブックへコピーする方法です。例えば、右図のようなワークシートのコピーをマクロでやる場合です。

ワークシートをコピーするときは、???.Copyメソッドを実行します。???の部分は、Worksheets(n)Sheets(n)などのワークシートを表すオブジェクトです。詳しくは、2.1 直接指定する方法2.2 間接的に指定する方法をどうぞ。
???.Copyの引数
???.Copyには、どの位置へコピーするかを次の引数で指定できます。

 ◆コピー時の引数
Before:=ワークシート 指定したワークシートの左側へコピーします。
After:=ワークシート 指定したワークシートの右側へコピーします。

ちなみに、Before:=After:=を省略すると、新しいワークブックが開きそこへコピーされるので注意!
使用例1/ワークブック内でコピーする場合
???.Copyの使用例を、Sheets(n).Copyで説明します。例ではSheet1という名前のワークシートを、Sheet3という名前のワークシートの左右へコピーしています。

Sub prcSheetsCopy1()

    '@Sheet1をSheet3の右側へコピーします
    Sheets("Sheet1").Copy After:=Sheets("Sheet3")
    'ASheet1をSheet3の左側へコピーします
    Sheets("Sheet1").Copy Before:=Sheets("Sheet3")

End Sub
 ※このエクセルマクロはワークシート内へ記述するマクロです
使用例2/他のワークブックへコピーする場合
???.Copyの使用例その2です。ワークシートを、他のワークブックへコピーします。と言っても、特に変わったことはありません。コピー先の指定で、ワークブックも指定します。

例ではSheet1という名前のワークシートを、Book3という名前のワークブック内にあるSheet2という名前のワークシートの右側へコピーしています。

Sub prcSheetsCopy2()

    'Sheet1をBook3というワークブック内のSheet2の右側へコピーします
    Sheets("Sheet1").Copy After:=Workbooks("Book3").Sheets("Sheet2")

End Sub
 ※このエクセルマクロはワークシート内へ記述するマクロです
Copyright(C) 1999-2006 結城圭介。 All rights reserved