Worksheet.ProtectedContents - это то, что вам нужно использовать на каждом рабочем листе.
Итак, я бы настроил цикл следующим образом:
Public Function wbAllSheetsProtected(wbTarget As Workbook) As Boolean
Dim ws As Worksheet
wbAllSheetsProtected = True
For Each ws In wbTarget.Worksheets
If ws.ProtectContents = False Then
wbAllProtected = False
Exit Function
End If
Next ws
End Function
Функция вернет True, если каждый лист защищен, и False, если есть листы, которые не защищены. Я надеюсь, что это то, что вы искали.