シートのVBAコード
VBA実行内容
・Application.DisplayAlertsをFalseにし、「~しますか?」などの警告メッセージを非表示にし、プログラムが停止しないようにしています。
・既に1~12月のシートが存在するかチェックし、存在する場合は、Sheets(i).Deleteで削除します。
・Sheets.Add Afterで最後のシートの後ろにシートを追加します。
・最後に実行シートをSelectし戻しています。
下記のコードを追加してください
'月のシートを削除
Private Sub ExDeleteSheet()
Dim i As Integer
Dim j As Integer
'警告メッセージの非表示
Application.DisplayAlerts = False
For j = 1 To 12
For i = 1 To Sheets.Count
If Sheets(i).Name = j & "月" Then
Sheets(i).Delete
Exit For
End If
Next
Next
Application.DisplayAlerts = True
End Sub
'月のシートを作成
Private Sub ExMakeSheet()
Dim i As Integer
Dim ans As Integer
bFlag = False
'月のシートはあるかチェック
For i = 1 To Sheets.Count
For j = 1 To 12
If Sheets(i).Name = j & "月" Then
bFlag = True
Exit For
End If
Next
'見つかった
If bFlag = True Then
Exit For
End If
Next
If bFlag = True Then
ans = MsgBox("既にカレンダー用のシートが存在するようです。削除してもよろしいですか?", vbOKCancel, "カレンダー作成")
If ans <> vbOK Then
Exit Sub
Else
'月のシートを削除
ExDeleteSheet
End If
End If
'月のシートを作成
For i = 1 To 12
'シートを追加
ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
'名前の変更
ActiveWorkbook.ActiveSheet.Name = i & "月"
Next
Sheets("メイン").Select
End Sub
Private Sub CommandButton1_Click()
ExMakeSheet
End Sub
実行結果
実行画面のメインシートの後ろに、1月から12ヶ月分のシートが追加されています。