ワークシートのコピー

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

(Last modified: )

ワークシートをコピーする

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

Dim sheet1 As Worksheet

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

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

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

サンプルプログラム

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

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

ワークシートのコピー

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

Sub テスト()

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

End Sub

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

ワークシートのコピー

-- --

Excel VBA を使ってワークシートをコピーする方法を解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。