dポイントプレゼントキャンペーン実施中!

表題について、どなたか詳しく教えてください

A 回答 (3件)

一括で削除するというのがお望みならば、こうなります。

一括で配列を作れれば、もう少し簡略化できます。ただし、今は、シート名ではなく、Worksheet インデックスでシートを選択しています。

Dim i As Long
For i = 3 To Worksheets.Count
 Worksheets(i).Select False
Next
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
    • good
    • 0

こうかな。


(全角スペースに置き換えてます)

Public Sub test()
  Application.ScreenUpdating = False
  Application.DisplayAlerts = False

  Dim sheet As Worksheet
  For Each sheet In ActiveWorkbook.Sheets
    If sheet.Name <> "Sheet1" And sheet.Name <> "Sheet2" Then
      Call sheet.Delete
    End If
  Next
  
  Application.DisplayAlerts = True
  Application.ScreenUpdating = True
End Sub
    • good
    • 0

詳しくといってもそれほど難解なコードも使っていませんので、わかると思います。



Application.DisplayAlerts = False
は確認メッセージを出さないために記載しています。

Sub Sample()
Dim sh As Worksheet
Application.DisplayAlerts = False
For Each sh In Worksheets
If sh.name <> "Sheet1" And sh.name <> "Sheet2" Then
sh.Delete
End If
Next sh
Application.DisplayAlerts = True
End Sub
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!