Excelでシートのコピーを一気に行うVBAのサンプルコードを紹介します。
手作業でもいいのですが、100枚ぐらいシートをコピーして増やすとなるとマクロのほうが便利です。
仕様
画面仕様
マクロを実行したときにテンプレートシート「template」を繰り返しコピーします。
業務によってはテンプレートシート「template」を100枚作りたいケースもあるかと思いますが、今回は5枚シートコピーする例で説明します。
※もちろん件数はループの最大件数で調整できます。
ソースコード
今回は下記のソースコードを用意しています。
内容はシートの数だけシートをコピーして、適当な名前にシート名を変更しています。
Sub copySheet()
Dim i As Long
For i = 1 To 5 '枚数はここのループ回数を調整します
ActiveSheet.Copy After:=Worksheets(i)
ActiveSheet.Name = "適当な名前" & i
Next i
End Sub
テスト実行
下記の通り、VBEを開き、上のソースコードを張り付けます。
F5キーを押下すると下記の画面が出てくるので、今回作成したSubプロシージャを選択して「実行」ボタンを押下します。
下記の通り、テンプレートシートがコピーされました。
イミディエイトウィンドウを使用した方法の検討
本来シートのコピーは大掛かりな作業ではないので、イミディエイトウィンドウでさっと実施したいです。
しかし、上のコードを コロンで区切ると、変数の宣言ができないためエラーとなってしまいます。
具体的には下記のようなエラーメッセージが出力されます。
それから変数宣言を削除すると、無限ループとなるようです。
(無限ループになってしまった人はCtrl+BreakやEscで処理を停止させましょう)
無理にイミディエイトウィンドウで頑張るのは、やめたほうがよさそうです。
参考情報
環境
下記の環境で作成・実行しております。
No. | 環境 | バージョン |
---|---|---|
1 | OS | Windows10 |
2 | Excel | Excel2016 |
以上です。