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


マクロ講座 48回前半
枚数を指定してシートをコピーするマクロ
Excelの作業では、よく使う表のひな形のシートを作って、必要枚数コピーするというような作業は日常よくあります。
そのような時に、マクロを使って一発で必要枚数をコピーできたら便利です。
今回は、必要枚数を指定してシートをコピーするマクロを作成します。
(サンプルファイルは、こちらから 2013マクロ講座48回サンプルデータ)
ワークシートをコピーする
ワークシートをコピーするには、コピーメソッドを使います。
構文は、Object.Copy[Before/After:=シートオブジェクト]

構文は、Object.Copy[Before/After:=シートオブジェクト]

CopyメソッドにはBefore,Afterの引数があります。
Before 指定したシートの前に(左に)コピーします。
After 指定したシートの後ろ(右に)コピーします。
下図のようなテンプレートを後ろにコピーしたければ、

Before 指定したシートの前に(左に)コピーします。
After 指定したシートの後ろ(右に)コピーします。
下図のようなテンプレートを後ろにコピーしたければ、
Sub ワークシートコピー1() Worksheets("テンプレート").Copy After:=Worksheets("テンプレート") End Sub

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

引数のBeforeとAfterを同時に使用することはできません。
また、両方省略した場合は、新規ブックにワークシートをコピーします。

ユーザーが枚数を指定するには、InputBox
ユーザーが枚数を指定するには、ApplicationオブジェクトのInputBoxメソッドを使います。
Object.lnputBox Prompt:=メッセージ(,Title:=タイトル,Default:=初期値,Type:=値)

Object.lnputBox Prompt:=メッセージ(,Title:=タイトル,Default:=初期値,Type:=値)

今回の例として、引数には、次のように入力します。

Application.InputBox(Prompt:="枚数を入力", Title:="枚数指定", Type:=1)引数 Type に指定できる値として、数値の1を指定します。
