ワークシートをコピーして追加するのは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シート”といった形で入れれば変更可能です。
コメント