VBATips

現在のシートを表示したまま、シートコピー(追加)する【ExcelVBA】

ワークシートをコピーして追加するのはCopyメソッドで対応可能ですが、
現在のシートを表示したままワークシートをコピーするのはどのように対応するでしょうか。

フォーマットをコピーするが、現在のシートを表示したままにしたいケースがあります。

コピーすると必ずコピーしたシートがActiveSheetになる為、以下の内容のコードを作成します。
①現在のシートをワークシート変数に入れておく。
②ワークシートをコピーする。
③①の変数のシートをActivateする。

現在のシートを表示したまま、シートコピーするサンプルコード

Public Sub sample()

    Dim ws As Worksheet
    
    '■現在表示しているシートを変数に入れる
    Set ws = ActiveSheet
    
    '■現在表示しているシートをシートの最後尾にコピーする
    ActiveSheet.Copy after:=Worksheets(Worksheets.Count) 'コピーしたシートがActiveSheetになる
    
    '■最前面に表示したいシートをActivateする
    ws.Activate
    
End Sub

注意点

関連記事

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

コメント

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