ワークシートをコピーして追加するのはCopyメソッドで対応可能ですが、
ワークシートを名前を変更してコピーするのはどのように対応するでしょうか。
フォーマットをコピーして、任意の名前にしたいケースがあります。
名前を変更して、コピーするを同一には出来ませんので、以下の内容のコードを作成します。
①ワークシートをコピーする。
②コピーしたシートが自動的にActiveSheetになる。
③ActiveSheetの名前を変更する。
①ワークシートをコピーする。
②コピーしたシートが自動的にActiveSheetになる。
③ActiveSheetの名前を変更する。
ワークシートを名前変更してコピーするサンプルコード
Public Sub call_sheetCopy()
'■現在表示しているシートをシートの最後尾にコピーする
ActiveSheet.Copy after:=Worksheets(Worksheets.Count)
'■ActiveSheetがコピーしたシートに変更される
Debug.Print ActiveSheet.Name '(例)Sheet1→Sheet1(2)
'■シート名をSheet1(2)からシート数に変更する
ActiveSheet.Name = Worksheets.Count '(例)Sheet1(2)→2(現在シート数が2枚の為)
End Sub
注意点
- 「指定名のシートが存在すればActivate/なければシート作成する」処理のようにシートをループしてチェックしする事が可能です。
- 上記サンプルコードではWorkShhets.Countでシート数をシート名にしましたが、単純に名前を変更する場合は ActiveSheet.Name = “21/04/29シート”といった形で入れれば変更可能です。



コメント