マクロでシートを指定枚数コピーする
マクロ講座48回
![マクロでひな形のシートを指定枚数コピーする](gazo2013/2013_macro_48.png)
![マクロでひな形のシートを指定枚数コピーする](gazo2013/2013_macro_48.png)
マクロ講座 48回前半
枚数を指定してシートをコピーするマクロ
Excelの作業では、よく使う表のひな形のシートを作って、必要枚数コピーするというような作業は日常よくあります。
そのような時に、マクロを使って一発で必要枚数をコピーできたら便利です。
今回は、必要枚数を指定してシートをコピーするマクロを作成します。
(サンプルファイルは、こちらから 2013マクロ講座48回サンプルデータ)
ワークシートをコピーする
ワークシートをコピーするには、コピーメソッドを使います。
構文は、Object.Copy[Before/After:=シートオブジェクト]
![](gazo2013/macro/worksheet_copy_method.png)
構文は、Object.Copy[Before/After:=シートオブジェクト]
![](gazo2013/macro/worksheet_copy_method.png)
CopyメソッドにはBefore,Afterの引数があります。
Before 指定したシートの前に(左に)コピーします。
After 指定したシートの後ろ(右に)コピーします。
下図のようなテンプレートを後ろにコピーしたければ、
![](gazo2013/macro/2013_macro_48_01.png)
Before 指定したシートの前に(左に)コピーします。
After 指定したシートの後ろ(右に)コピーします。
下図のようなテンプレートを後ろにコピーしたければ、
Sub ワークシートコピー1() Worksheets("テンプレート").Copy After:=Worksheets("テンプレート") End Sub
![](gazo2013/macro/2013_macro_48_01.png)
新規ブックにワークシートをコピーする時は
前にコピーしたければ、Before:=Worksheets("テンプレート")とします。
引数のBeforeとAfterを同時に使用することはできません。
また、両方省略した場合は、新規ブックにワークシートをコピーします。
![](gazo2013/macro/2013_macro_48_02.png)
引数のBeforeとAfterを同時に使用することはできません。
また、両方省略した場合は、新規ブックにワークシートをコピーします。
![](gazo2013/macro/2013_macro_48_02.png)
ユーザーが枚数を指定するには、InputBox
ユーザーが枚数を指定するには、ApplicationオブジェクトのInputBoxメソッドを使います。
Object.lnputBox Prompt:=メッセージ(,Title:=タイトル,Default:=初期値,Type:=値)
![](gazo2013/macro/inputbox_method.png)
Object.lnputBox Prompt:=メッセージ(,Title:=タイトル,Default:=初期値,Type:=値)
![](gazo2013/macro/inputbox_method.png)
今回の例として、引数には、次のように入力します。
![](gazo2013/macro/inputbox_type.png)
Application.InputBox(Prompt:="枚数を入力", Title:="枚数指定", Type:=1)引数 Type に指定できる値として、数値の1を指定します。
![](gazo2013/macro/inputbox_type.png)