投稿/コメントを表示します。

何度もすみません。前段、前々段の投稿はミスがあったため、削除お願いします。

先生こんにちは。シートに削除対象外のシート名を記載するバージョンを(CountIfを使った方がすっきり書けますが、)フラグを使って書いてみました。
 違和感がありましたら、コメントお願いします。
Sub DeleteSheetsByFlag()
    '全てのシートについて
    Dim Sh As Worksheet
    For Each Sh In ThisWorkbook.Sheets
        '削除対象フラグを設定。初期値はオン。
        Dim sakujoFlagOn As Boolean
        sakujoFlagOn = True
        'NokosuList内の全ての値について
        Dim gyo As Long
        For gyo = 1 To ThisWorkbook.Sheets("NokosuList").Range("A" & Rows.Count).End(xlUp).Row
            'もしシート名がリストと一致したら
            '大文字小文字の差を吸収するため、両辺にUcaseを通す
            If UCase(ThisWorkbook.Sheets("NokosuList").Range("A" & gyo).Value) = UCase(Sh.Name) Then
            '削除対象フラグをオフに切り替える。
                sakujoFlagOn = False
                Exit For
            End If
        '保存シート名ループ終了
        Next
        
        '削除対象フラグがTrueのままだったらシート削除
        If sakujoFlagOn Then
            Application.DisplayAlerts = False
                Sh.Delete
            Application.DisplayAlerts = True
        End If
    '全てのシートループ終了
    Next
End Sub

2019/12/23 11:56