запрет на печать листа Excel

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Запретить печать можно с помощью обработчика события BeforePrint в модуле книги.

Код: Выделить всё

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  Cancel = True
End Sub
Но это естественно не работает, если сакросы выключить.

Чтобы запретить печать конкретного листа, то в этом же обработчике можно пробежаться по коллекции ActiveWindow.SelectedSheets и посмотреть, не входит ли туда защищаемый лист.

Код: Выделить всё

Dim Sh as Sheet
.........

For Sh in ActiveWindow.SelectedSheets
   'Тут определяем, не является ли Sh защищаемым листом.
Next
Но вот вопрос, как оптеределить, что это именно тот самый защищаемый лист? Если по названию, то всегда можно будет переименовать лист и распечатать... Если как-то по-другому, то по-другому это можно будет обойти...

Короче все это от лукавого...
Ответить