VBATips

複数シートをまとめてコピーする【ExcelVBA】

複数のワークシートをまとめてコピーしたい

単一のワークシートをコピーする方法はCopyメソッドで対応が可能です。
では、まとめてコピーするにはどうしたらよいでしょうか。

事前にコピーしたいワークシートを配列で渡せばコピーをしてくれます。
下記3パターンがあります。

複数のワークシートをまとめてコピーするサンプルコード

'■複数のシートをまとめてコピーするサンプルコード
Public Sub sample()
    '■①複数シートをまとめてコピー(シート名で選択)してブックを新規作成
    Worksheets(Array("Sheet1", "Sheet2", "Sheet3")).Copy
     
    '■②複数シートをまとめてコピー(シート番号で選択)してブックを新規作成
    Worksheets(Array(1, 2, 3)).Copy
          
    '■③複数シートをまとめてコピー(配列で選択)してブックを新規作成
    Dim arr As Variant
    ReDim arr(1 To 3)
    arr(1) = "Sheet1"
    arr(2) = "Sheet2"
    arr(3) = "Sheet3"
    Worksheets(arr).Copy

    '■貼り付けする考えは1シートであろうが複数シートであろうが同様の考え 新規ブックではなく、コピー元のブックを指定
    Worksheets(Array(1, 2)).Copy after:=Worksheets(Worksheets.Count)
    Worksheets(arr).Copy Before:=Workbooks("Book2").Worksheets(2)
End Sub

注意点

Worksheets(Array(1, 3, 2)).Copyのように渡しても貼り付け時は1,2,3の並びになります。

関連記事

コメント

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