複数のワークシートをまとめてコピーしたい
単一のワークシートをコピーする方法は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の並びになります。
コメント