複数のシートを組み合わせて資料を作りたい場合やデータのバックアップを取りたい場合などに、シートのコピー機能は非常に便利です。それではVBAでのシートのコピー方法についてご説明します。
シートのコピー設定方法
まずコピー元のシートをWorksheetsで指定し、続けてCopyメソッドによってコピーを行います。
<コード>
ActiveSheet.Copy '選択中のシートをコピー' Worksheets("Sheet1").Copy 'シート名(Sheet1)を指定してコピー'
<実行例>
新しいブックが作成され、シートがコピーされます。
シートのコピー先の指定
新しいブックではなく、現在使用しているブックや既存のブックにシートをコピーしたいという場合はコピー先の指定が必要です。シートのコピー先はBeforeで指定したシートの左隣に、Afterで指定したシートの右隣に設定することができます。
ただし、BeforeとAfterを同時に指定することはできません。もちろん、両方指定しなくてもコピー先を特定することができるので、重複して指定する必要はないということですね。
<コード>
Sheets("Sheet1").Copy Before:=Sheets("Sheet3") '同じブック内にSheet1をコピー' Sheets("Sheet1").Copy After:=Workbooks("Book2").Sheets("Sheet3") '他のブック(Book2)にコピー'
<実行例:同じブック内にSheet1をコピー>
<実行例:他のブック(Book2)にコピー>
<NG例>
Sheets("Sheet1").Copy Before:=Sheets("Sheet3"), After:=Sheets("Sheet3") 'BeforeとAfterを同時に指定しているためエラーが発生します。'
まとめ
シートのコピー元はWorksheets(またはSheets)で指定し、コピー先はBeforeやAfterで指定します。また、コピー先を指定しない場合は新しいブックを作成することができるので、新規にデータ加工を行いたいときなどに役立ちそうですね。