[ Excel-VBA ] 同一ブック、新規ブックにシートのコピーと移動 ( Worksheets.Copy Move )

Pocket

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

結果

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

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

参考
スポンサーリンク


Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>