ワークシートをコピーして追加するのは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】
コメント