OR
誰でも自由に記事を投稿・編集できるオープンリファレンス
記事ID:694
区分:プログラム  |  分類:VB  |  最終更新日:2016/03/16
クリエイティブ・コモンズ 表示-継承ライセンス 2.1
【VBA】ワークシートをコピーする
関連タグ:Excel, VBA, ワークシート, worksheets
このエントリーをはてなブックマークに追加      
本文
履歴
編集
閲覧数: 5,807
Excel VBA ナレッジ > 【VBA】ワークシートをコピーする

Excel VBAでワークシートをコピーするには、シートオブジェクトのCopyメソッドを使用します。

 

構文

Object.Copy(Before, After)

引数
省略説明
Before

シートを指定します。

ここで指定したシートの前に該当シートがコピーされます。

After

シートを指定します。

ここで指定したシートの後に該当シートがコピーされます。

※BeforeもAfterも省略した場合は、新規にブックを作成し、そのブックにシートをコピーします。

 

Copyメソッドはコピー元シートオブジェクトで使うことで、そのシートをコピーすることができます。引数を指定することで、指定のシートの前または後ろにコピー先を指定することができます。なお、引数(コピー先)を省略した場合は新しくブックを作成し、そのブックにシートをコピーします。

 

【例1】

Worksheets("Sheet1").Copy

 

上記例は「Sheet1」シートをコピーします。コピー先を引数で指定していないので、新規にブックを作成しそのブックにシートをコピーします。なお、Copyメソッドには名前を変更する機能はないので、コピーシートの名前を変更する場合は、コピー後にシートオブジェクトのNameプロパティで名前を変更します。

 

【例2】

Worksheets("Sheet2").Copy After:=Worksheets("Sheet3")
ActiveSheet.Name = "sample"

 

上記例は「Sheet2」シートを「Sheet3」の後ろにコピーし、その後、コピーしたシートを「sample」という名前に変更しています。Copyメソッドでシートをコピーした場合、コピー先シートが必ずアクティブになるので、ActiveSheetオブジェクトでコピーシートを特定することができます。

ブックの先頭(左端)にワークシートをコピーする

ブックの先頭(左端)にワークシートをコピーする場合は、Before引数に最初のシートを指定します。以下例では「Sheet1」シートをブックの先頭にコピーします。

 

【例3】

Public Sub sample()
    Worksheets("Sheet1").Copy Before:=Worksheets(1)
End Sub

ブックの末尾(右端)にワークシートをコピーする

ブックの末尾(右端)にワークシートをコピーする場合は、After引数にブック末尾のシートを指定します。以下例では「Sheet1」シートをブックの末尾にコピーします。

 

【例4】

Public Sub sample2()
    Worksheets("Sheet1").Copy After:=Worksheets(Worksheets.Count)
End Sub

※末尾のシートを指定するテクニックとして、Worksheets(Worksheets.Count)というオブジェクトを指定することで、ブックの末尾シートを指定することができます。

関連記事
関連記事はありません。
外部リンク
外部リンクはありません。
- 記事検索 -