マクロでシートを指定枚数コピーする

マクロ講座48回 
マクロでひな形のシートを指定枚数コピーする

マクロ講座 48回前半

枚数を指定してシートをコピーするマクロ

Excelの作業では、よく使う表のひな形のシートを作って、必要枚数コピーするというような作業は日常よくあります。
そのような時に、マクロを使って一発で必要枚数をコピーできたら便利です。
今回は、必要枚数を指定してシートをコピーするマクロを作成します。
(サンプルファイルは、こちらから 2013マクロ講座48回サンプルデータ

ワークシートをコピーする

ワークシートをコピーするには、コピーメソッドを使います。
構文は、Object.Copy[Before/After:=シートオブジェクト]
CopyメソッドにはBefore,Afterの引数があります。
Before 指定したシートの前に(左に)コピーします。
After 指定したシートの後ろ(右に)コピーします。
下図のようなテンプレートを後ろにコピーしたければ、
Sub ワークシートコピー1()
        Worksheets("テンプレート").Copy After:=Worksheets("テンプレート")
End Sub

新規ブックにワークシートをコピーする時は

前にコピーしたければ、Before:=Worksheets("テンプレート")とします。
引数のBeforeとAfterを同時に使用することはできません。
また、両方省略した場合は、新規ブックにワークシートをコピーします。

ユーザーが枚数を指定するには、InputBox

ユーザーが枚数を指定するには、ApplicationオブジェクトのInputBoxメソッドを使います。
Object.lnputBox Prompt:=メッセージ(,Title:=タイトル,Default:=初期値,Type:=値)
今回の例として、引数には、次のように入力します。
Application.InputBox(Prompt:="枚数を入力", Title:="枚数指定", Type:=1)
引数 Type に指定できる値として、数値の1を指定します。