ここでは、VBA によってエクセルのワークシートのコピーと移動を行うサンプルを掲載しています。
スポンサーリンク
ワークシートをコピーする ( Worksheets.Copy )
ワークシートをコピーするサンプルスクリプトです。同じブック内に名前を変更してコピーと新規ブックにシートをコピーしています。詳細はコメントを参照ください。
同じブック内にシートをコピーしてシート名を変更する
' シート"Sheet1"をシート"Sheet3"の後ろにコピーする
Worksheets("Sheet1").Copy After:=Worksheets("Sheet3")
' 【メモ】
' シートの前にコピーする場合にはAfterではなく、Beforeを指定する
' コピー後のシートはアクティブ(選択状態)なので、
' アクティブシートから名前を変更することが可能
ActiveSheet.Name = "名前を変更"
結果

シートのコピー結果
新規ブックにシートをコピーする
' コピー先を指定しなければ、新規ブックを作成してコピーする
Worksheets("Sheet1").Copy
' ウィンドウ(APP)が異なるので、上位から指定することで
' コピー後のシートの名前を変更している
ActiveWindow.ActiveSheet.Name = "名前を変更"
' 以下のように記述しても良い
'Application.ActiveWindow.ActiveSheet.Name = "名前を変更"
結果

シートを新規ブックにコピーした結果
ワークシートを移動する ( Worksheets.Move )
同じワークブック内の特定の位置にワークシートを移動させる、または新規ブックにシートを移動させる VBA のサンプルスクリプトになります。詳細はコメントを参照ください。
同一ブック内に移動する
' シート"Sheet1"をシート"Sheet3"の後ろに移動する
Worksheets("Sheet1").Move After:=Worksheets("Sheet3")
' 【メモ】
' シートの前に移動する場合にはAfterではなく、Beforeを指定する
' 移動後のシートはアクティブ(選択状態)なので、
' アクティブシートから名前を変更することが可能
ActiveSheet.Name = "名前を変更"
結果

同一ブック内にシートを移動させた結果
新規ブックにシートを移動する
' 移動先を指定しなければ、新規ブックを作成して移動する
Worksheets("Sheet1").Move
' ウィンドウ(APP)が異なるので、上位から指定することで
' コピー後のシートの名前を変更している
ActiveWindow.ActiveSheet.Name = "名前を変更"
' 以下のように記述しても良い
'Application.ActiveWindow.ActiveSheet.Name = "名前を変更"
結果

新規ブックを生成してシートを移動させた結果