Excelのシートコピー(複製)を一気に行うVBAのサンプルコード

VBA
記事内に広告が含まれています。

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.環境バージョン
1OSWindows10
2ExcelExcel2016
環境一覧

以上です。