ワークシートをコピーして追加するのはCopyメソッドで対応可能ですが、
現在のシートを表示したままワークシートをコピーするのはどのように対応するでしょうか。
フォーマットをコピーするが、現在のシートを表示したままにしたいケースがあります。
コピーすると必ずコピーしたシートがActiveSheetになる為、以下の内容のコードを作成します。
①現在のシートをワークシート変数に入れておく。
②ワークシートをコピーする。
③①の変数のシートをActivateする。
①現在のシートをワークシート変数に入れておく。
②ワークシートをコピーする。
③①の変数のシートをActivateする。
現在のシートを表示したまま、シートコピーするサンプルコード
Public Sub sample()
Dim ws As Worksheet
'■現在表示しているシートを変数に入れる
Set ws = ActiveSheet
'■現在表示しているシートをシートの最後尾にコピーする
ActiveSheet.Copy after:=Worksheets(Worksheets.Count) 'コピーしたシートがActiveSheetになる
'■最前面に表示したいシートをActivateする
ws.Activate
End Sub
注意点
- 追加したシート名を変更したい場合は下記の記事を参考にしてください。
ワークシートを名前変更してコピーする【ExcelVBA】
関連記事
ワークシートをコピーする【Copyメソッド】【ExcelVBA】
新しいワークシートを追加する【Addメソッド】【ExcelVBA】
ワークシートを削除する【Deleteメソッド】【ExcelVBA】
新しいワークシートを作成時、処理を行う【NewSheet】【ExcelVBA】
テンプレートシートの行幅をコピーする【ExcelVBA】
テンプレートシートの列幅をコピーする【ExcelVBA】
コメント