目次
マクロの内容
調べてみたけれど、意外となかった…。
マクロを実行する度に全てのシート確認して、前回のシート名の数字に「+1」をしたシートを作成する手順です。
今回は、例として、「第XX期」というシートをマクロを実行するたびに作成するようにしました。
(イメージとしては、「第01期」「第02期」「第03期」… と増えます。)
Dim i As Long, cnt As Long
Dim prd_cnt As String
'シートを全てチェックして、「第XX期」と名前がついているものを全てカウント。
For i = 1 To Worksheets.Count
If Worksheets(i).Name Like "第" & "[0-9][0-9]" & "期" Then cnt = cnt + 1
Next i
'カウントした数「+1」したものを「prd_cnt」として、Format関数を使って二桁表示に置き換える。(1なら「01」になる)
'ここを三桁にしたい場合は、「"000"」に変えます。
prd_cnt = Format(cnt + 1, "00")
'シート名を「"第XX期"」に変更。
ActiveSheet.Name = "第" & prd_cnt & "期"
ベースのテンプレートをコピーして「+1」したシートを作成
ちなみに、他のシートをコピーして使いたいときはこんな感じに。
(非表示にしているテンプレートシートをコピーして使ってます。)
'コピー元になる「テンプレート」を指定
Dim Sht_Template As Worksheet: Set Sht_Template = Worksheets("テンプレートシート名")
'テンプレートを一度表示させてシートコピー処理。再度非表示に戻す
With Sht_Template
.Visible = True
.Activate
.Copy after:=追加したい場所の手前にあるシート名
.Visible = False
End With
Dim i As Long, cnt As Long
Dim prd_cnt As String
'シートを全てチェックして、「第XX期」と名前がついているものを全てカウント。
For i = 1 To Worksheets.Count
If Worksheets(i).Name Like "第" & "[0-9][0-9]" & "期" Then cnt = cnt + 1
Next i
'カウントした数「+1」したものを「prd_cnt」として、Format関数を使って二桁表示に置き換える。(1なら「01」になる)
'ここを三桁にしたい場合は、「"000"」に変えます。
prd_cnt = Format(cnt + 1, "00")
'シート名を「"第XX期"」に変更。
ActiveSheet.Name = "第" & prd_cnt & "期"