原本シートをコピーして名前をつけるマクロ Excel 2013 マクロ講座
Excel 2013 マクロ講座 57回
原本のシートを複数コピーして名前をつける
今回紹介するマクロは、マクロ講座 48回の応用となります。
売上表などは、原本(テンプレート)シートをコピーして使いまわすことが多いですが、
コピーしたシートに”平成28年1月”などのようにシート名をつけると手間が省けます。
コピーしたシートにシート名をつける方法
(サンプルファイルは、こちらから マクロ57回サンプルデータ)
原本コピーしたシートに名前
どんなことをするのかというと、最初は原本のテンプレートだけですが、マクロを実行すると指定枚数コピーされシートに名前をつけます。


48回の枚数を指定してシートをコピーするマクロのコードは、次のようなコードでした。

Sub 枚数指定コピー()
Dim i As Integer
Dim cnt As Integer
cnt = Application.InputBox(Prompt:="枚数を入力", Title:="枚数指定", Type:=1)
For i = 1 To cnt
Worksheets("テンプレート").Copy After:=Worksheets(i)
ActiveSheet.Name = i
Next i
End Sub
このコードのActiveSheet.Name = iをシート名の書式で入れるように書き換えます。
名前は文字列"平成27年"にWorksheets.Countでワークシートの枚数を求めて、テンプレートの1枚を引いています。うしろに"月"を加えています。
Sub 枚数コピーして名前もつける()
Dim i As Integer
Dim cnt As Integer
cnt = Application.InputBox(Prompt:="枚数を入力", Title:="枚数指定", Type:=1)
For i = 1 To cnt
Worksheets("テンプレート").Copy before:=Worksheets("テンプレート")
ActiveSheet.Name = "平成27年" & Worksheets.Count - 1 & "月"
Next i
End Sub
マクロを実行すると、始めに枚数を聞いてきます。
数値を入力してやり、OKをクリックすると、その枚数がコピーされます。今回は、テンプレートの前にシートを配置しています。


6月分までコピーして追加で4枚コピーしました。


ついでに、F2セルに何月と入れるようにしましょう。次のコードを追加しました。
Range("F2").Value = Worksheets.Count - 1
Range("F2").Value = Worksheets.Count - 1
Sub 枚数コピーして名前もつける()
Dim i As Integer
Dim cnt As Integer
cnt = Application.InputBox(Prompt:="枚数を入力", Title:="枚数指定", Type:=1)
For i = 1 To cnt
Worksheets("テンプレート").Copy before:=Worksheets("テンプレート")
ActiveSheet.Name = "平成27年" & Worksheets.Count - 1 & "月"
Range("F2").Value = Worksheets.Count - 1
Next i
End Sub

スポンサーリンク
スポンサーリンク