【VBA】複数のシートをまとめて新規ブックへコピーする

Excel, PC

Excel VBA

シートの操作では1つのシートをコピーしたりすることが多いですが、複数のシートをコピーするのはどうやるのでしょうか?ある関数を使えば、簡単にできますよ!

スポンサーリンク

複数シートのコピー

早速本題からですが、複数のワークシートをコピーするにはArray関数を使います。

Array関数は、引数に指定した要素を配列にしてバリアント型で返す関数で、

変数名 = Array(要素1, 要素2, 要素3, ……)

というように使ったりします。

と言ってもわかりにくいと思いますので、実際に複数のシートをコピーするにはどうすればいいかというと…下の1行でOKです。

Worksheets(Array(1, 2, 3)).Copy

Arrayの()で囲っている部分に、コピーしたいシート番号を入れます。この場合は、1番目から3番目までのシートを新規ブックへコピーします。

もちろん指定するシート番号は連番でなくとも構いませんし、シート名でもできます。例えば、下のようなブックの場合

複数シートのコピー見本

Worksheets(Array(”仙台", “名古屋")).Copy

と書いて実行すると

複数シートのコピー コピー後

指定した2つのシートをコピーした新規ブックが作成されます。

これで、複数シートのコピーはばっちりですね!

Excel, PC

Posted by 管理人