Код: Выделить всё
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = True
End Sub
Чтобы запретить печать конкретного листа, то в этом же обработчике можно пробежаться по коллекции ActiveWindow.SelectedSheets и посмотреть, не входит ли туда защищаемый лист.
Код: Выделить всё
Dim Sh as Sheet
.........
For Sh in ActiveWindow.SelectedSheets
'Тут определяем, не является ли Sh защищаемым листом.
Next
Короче все это от лукавого...