VBATips

ワークシートを名前変更してコピーする【ExcelVBA】

ワークシートをコピーして追加するのはCopyメソッドで対応可能ですが、
ワークシートを名前を変更してコピーするのはどのように対応するでしょうか。

フォーマットをコピーして、任意の名前にしたいケースがあります。

名前を変更して、コピーするを同一には出来ませんので、以下の内容のコードを作成します。
①ワークシートをコピーする。
②コピーしたシートが自動的に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

注意点

関連記事

ワークシートをコピーする【Copyメソッド】【ExcelVBA】
新しいワークシートを追加する【Addメソッド】【ExcelVBA】
ワークシートを削除する【Deleteメソッド】【ExcelVBA】
新しいワークシートを作成時、処理を行う【NewSheet】【ExcelVBA】

コメント

タイトルとURLをコピーしました