複数のシートを組み合わせて資料を作りたい場合やデータのバックアップを取りたい場合などに、シートのコピー機能は非常に便利です。それではVBAでのシートのコピー方法についてご説明します。

シートのコピー設定方法

まずコピー元のシートをWorksheetsで指定し、続けてCopyメソッドによってコピーを行います。
<コード>

ActiveSheet.Copy   '選択中のシートをコピー'
Worksheets("Sheet1").Copy  'シート名(Sheet1)を指定してコピー'

<実行例>
【VBA入門】シートをコピーする方法
新しいブックが作成され、シートがコピーされます。

シートのコピー先の指定

新しいブックではなく、現在使用しているブックや既存のブックにシートをコピーしたいという場合はコピー先の指定が必要です。シートのコピー先はBeforeで指定したシートの左隣に、Afterで指定したシートの右隣に設定することができます。
ただし、BeforeとAfterを同時に指定することはできません。もちろん、両方指定しなくてもコピー先を特定することができるので、重複して指定する必要はないということですね。
<コード>

Sheets("Sheet1").Copy Before:=Sheets("Sheet3")	'同じブック内にSheet1をコピー'
Sheets("Sheet1").Copy After:=Workbooks("Book2").Sheets("Sheet3") '他のブック(Book2)にコピー'

<実行例:同じブック内にSheet1をコピー>
【VBA入門】シートをコピーする方法
<実行例:他のブック(Book2)にコピー>
【VBA入門】シートをコピーする方法
<NG例>

Sheets("Sheet1").Copy Before:=Sheets("Sheet3"), After:=Sheets("Sheet3")
'BeforeとAfterを同時に指定しているためエラーが発生します。'

まとめ

シートのコピー元はWorksheets(またはSheets)で指定し、コピー先はBeforeやAfterで指定します。また、コピー先を指定しない場合は新しいブックを作成することができるので、新規にデータ加工を行いたいときなどに役立ちそうですね。