Hi
Yes there is! The Protect Method in VBA has an extra argument called "UserInterfaceOnly", by default this is False. If you howeve set it to True, any VBA code can change Object Properties, use Methods etc. I do however URGE you to read the help in the Excel VBE on "Protect Method" as the "UserInterfaceOnly" as it is wiped out after a save.
On a persoanl note I have found (in Excel 97 at least) that some operations, such as FillAcrossSheets does leave the Worksheet unprotected. For this reason I have avoided this and always used the:
Sub AnyOldCode()
Sheet2.UnProtect Password:="Secret"
On Error GoTo ReProtect
'Any Code
Reprotect:
Sheet2.Protect Password:="Secret
End Sub