関数・メソッド

ワークシートをコピーする【Copyメソッド】【ExcelVBA】

構文

Sheets.Copy (Before, After)

Before・・・指定した Sheets オブジェクトの直前に新しいシートをコピーします。【省略可能】
After   ・・・指定した Sheets オブジェクトの直後に新しいシートをコピーします。【省略可能】

指定した位置からBefore もしくは After の場所にシートをコピーします。

Copyメソッドのコードサンプル

Public Sub test()
    '■引数を指定しないと新規ブックにコピーする
    ActiveSheet.Copy
        
    '■現アクティブなシートを3番目のシートの前にコピーする
    ActiveSheet.Copy before:=Worksheets(3)
    
    '■ブック上に存在するシートの先頭シートを最後尾にコピーする
    Worksheets(1).Copy after:=Worksheets(Worksheets.Count)
    
    '■ブック上に存在するシートの先頭シートを最後尾に移動する
    Worksheets(1).Copy after:=Worksheets(Worksheets.Count)
    
    '■複数のシートを一度に移動する
    'Arrayメソッドを使用することで、複数のシートを指定して移動することができます。
    '以下の例では、ブック上の1番目と2番目にあるシートを最後尾に移動しています。
    Worksheets(Array(1, 2)).Copy after:=Worksheets(Worksheets.Count) '■別ブックにシートをコピーする<br />  Worksheets(1).Copy Before:=Workbooks("Book2").Worksheets(2)
End Sub

注意点

  • 各メソッドのパラメータである Before と After は同時に指定することはできません。
  • Worksheetは同名のシートは存在が不可です。その為、Copyメソッドでコピーした場合はSheet1(2)のように末尾に()+数字が入ります。

関連記事

ワークシートを移動する【Moveメソッド】【ExcelVBA】
セルをコピーする【Copyメソッド】【ExcelVBA】
テンプレートシートの列幅をコピーする【ExcelVBA】
テンプレートシートの行幅をコピーする【ExcelVBA】

コメント

タイトルとURLをコピーしました