ワークシートのコピー

広告

ワークシートをコピーします。コピーしたセルを貼り付ける位置を指定できます。(コピーしてから貼り付けるというよりも、既にあるワークシートをコピーしたものを指定の位置に移動させるという感じです。その為コピーと貼り付けはCopyメソッドでまとめて行います)。

ワークシートへの移動はWorksheetオブジェクトに対して「Copy」メソッドを使います。

Dim sheet1 As Worksheet

Set sheet1 = Worksheets(1)
sheet1.Copy Before:=Worksheets("Sheet2")

コピーしたものを貼り付ける位置は既にあるシートの前又は後という形で指定します。「Before」引数を使う場合には指定したワークシートの前(左側)にコピーしたワークシートが貼り付けられます。「After」引数を使う場合には指定したワークシートの後(右側)に貼り付けられます。どちらもWorksheetオブジェクトを設定する値に使います。

注意する点としては、貼り付け先の引数を省略した場合、新しいブックが作成されてそのブックに貼り付けが行われます。また同じ名前のワークシートが貼り付け先のブックに既にある場合には、名前の後ろに括弧つきの番号「(2)や(3)」がワークシートの名前の後ろに順に付いていきます。

サンプルプログラム

では簡単なサンプルで試してみましょう。

下記のようなExcelのファイルを用意します。

ワークシートのコピー

先頭のシートをコピーし、「Sheet2」シートの後ろに貼り付けます。

testsheetedit3.bas

Sub テスト()

    Worksheets(1).Copy After:=Worksheets("Sheet2")

End Sub

上記マクロを実行すると次のようになります。

ワークシートのコピー

( Written by Tatsuo Ikura )