bugfix> excel > 投稿

1枚のワークブックを持っています。次のマクロを使用して新しいシートを作成しますが、作成されると、新しいシートがアクティブシートになります。アクティブにならずに新しいシートを作成する方法はありますか?

Sub CreateSheet()
   Dim ws As Worksheet
   With ThisWorkbook
       Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
       ws.Name = "Sheet2"
   End With
End Sub

回答 1 件
  • これは不可能だと思いますが、次のような回避策を使用できます。

    どのシートがアクティブなシートかを覚えておいてください

    新しいシートを作成します

    記憶されたシートをアクティブにする


    Sub CreateSheet()
       Dim OriginalSheet As Object
       Set OriginalSheet = ThisWorkbook.ActiveSheet 'remember active sheet.
        Application.ScreenUpdating = False
       Dim ws As Worksheet
       With ThisWorkbook
           Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
           ws.Name = "Sheet2"
       End With
       OriginalSheet.Activate 're-activate the sheet which was active before.
       Application.ScreenUpdating = True
    End Sub
    
    

あなたの答え