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