特定のワークシート以外を削除する。削除したくないワークシート名を指定(複数指定OK)して、それ以外のワークシートを全部削除する ※指定ワークシート名は大文字、小文字の区別あり

<分類:ワークシート操作>
<使用例:特定のワークシート以外を削除する>

<プログラム例>

Sub 使用例()

   Dim sname As Variant
   
  '下記に削除したくないワークシート名を指定
   sname = Array("Sheet1", "Sheet2")
   
   Call 特定のワークシート以外を削除(sname)

End Sub

Sub 特定のワークシート以外を削除(p1)
    Dim ws_maxsu As Long
    Dim i As Long
    Dim i2 As Long
    Dim flg As Long
    
    ws_maxsu = Worksheets.Count
    
    For i = 1 To ws_maxsu
       
       If i > Worksheets.Count Then
          Exit For
       End If
       
       flg = 0
       For i2 = LBound(p1) To UBound(p1)
           If Worksheets(i).Name = p1(i2) Then
              flg = 1
              Exit For
           End If
       Next i2
           
       If flg = 0 Then
          Application.DisplayAlerts = False
          Worksheets(i).Delete
          Application.DisplayAlerts = True
          i = i - 1
       End If
    Next i
    
End Sub