ワークシートのコピー

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

(2022 年 06 月 15 日公開 / 2022 年 06 月 15 日更新)

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

ワークシートへのコピーは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

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。