
Private Sub Workbook_Open()
    Dim objSh As Worksheet                      ' ワークシート(Work)
    ' 各ワークシートを巡回
    For Each objSh In ThisWorkbook.Worksheets
        ' オートフィルタが配置されているか
        If objSh.AutoFilterMode Then
            objSh.Protect AllowFiltering:=True  ' シート保護再セット(フィルタ可)
        End If
    Next objSh
End Sub
Option Explicit
Private Sub Workbook_Open()
    Dim objSh As Worksheet                      ' ワークシート(Work)
    ' 各ワークシートを巡回
    For Each objSh In ThisWorkbook.Worksheets
        With objSh
            ' グループ操作とオートフィルタ操作を可能としてシート保護
            .EnableOutlining = True
            .EnableAutoFilter = True
            .Protect UserInterfaceOnly:=True
        End With
    Next objSh
    ' 非保存になるため保存済み状態にする
    ThisWorkbook.Saved = True
End Sub