Excel 2013 マクロ講座 57回

原本のシートを複数コピーして名前をつける

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

原本コピーしたシートに名前

どんなことをするのかというと、最初は原本のテンプレートだけですが、マクロを実行すると指定枚数コピーされシートに名前をつけます。
原本シートをコピーして名前をつけるマクロ1
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をシート名の書式で入れるように書き換えます。
原本シートをコピーして名前をつけるマクロ2
名前は文字列"平成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
    
マクロを実行すると、始めに枚数を聞いてきます。
原本シートをコピーして名前をつけるマクロ3
数値を入力してやり、OKをクリックすると、その枚数がコピーされます。今回は、テンプレートの前にシートを配置しています。
原本シートをコピーして名前をつけるマクロ4
6月分までコピーして追加で4枚コピーしました。
原本シートをコピーして名前をつけるマクロ5
ついでに、F2セルに何月と入れるようにしましょう。次のコードを追加しました。
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
    
NAMAマクロ6
スポンサーリンク
スポンサーリンク