はじめに
ExcelVBAでひな形となるシートから翌月のシートを作成する処理は比較的多いのではないでしょうか。
多いけれど、月次でやる程度だしマクロ組むほどではなぁ……
そんな感じで月次で手動で対応している方も多いのではないと思います。
以下の処理をコピペして、ベースとなるシート名の部分を調整するだけで、翌月のシートを簡単に作れるマクロが使えます。
おまけでシートの重複チェックもつけておきましたので、Excelに同じ名前のシートが既にあると怒られる心配もありません。
コピペで使えるExcelVBA
Sub MakeNextMonthSheet() Dim rename As String '翌月(YYYYMM)を取得 rename = Format(DateSerial(Year(Now), Month(Now) + 1, 1), "YYYYMM") '同名のシートが存在しないかチェックします If Not isSheetExist(rename) Then 'ひな形というシートをベースに翌月(YYYYMM)のシートを作成します Sheets("ひな形").Select '最右にシートを追加します。 Sheets("ひな形").Copy After:=Sheets(Sheets.Count) '最左にシートを追加する場合はこちら 'Sheets("ひな形").Copy Before:=Sheets(1) 'シートコピー後に名前を翌月に変更 ActiveSheet.Name = rename Else '同名のシートが既に存在した場合の処理 MsgBox "シート:" + rename + "は既に存在します" End If End Sub Function isSheetExist(sheetname As String) Dim ws As Worksheet Dim result As Boolean 'すべてのシートに対して処理を実行 For Each ws In Worksheets '引数で渡されたシート名と同じ名称のものが既に存在しないかチェック If ws.Name = sheetname Then result = True Exit For Else result = False End If Next ws isSheetExist = result End Function