ここでは、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 = "名前を変更"
結果