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