Запрет на печать книги Excel
Если вы, по каким-то причинам, хотите запретить другим пользователям распечатать вашу книгу Excel, то можно использовать простой трюк.
Нажмите сочетание Alt+F11, чтобы открыть редактор Visual Basic или воспользуйтесь кнопкой Visual Basic на вкладке Разработчик (Developer). Найдите в левом верхнем углу в окне Project модуль ЭтаКнига (ThisWorkbook) и откройте его двойным щелчком левой кнопки мыши:
В открывшееся окно скопируйте и вставьте простой код макроса:
Private Sub Workbook_BeforePrint(Cancel As Boolean) Cancel = True MsgBox "Распечатка этой книги запрещена!", vbCritical End Sub
Технически, этот код представляет собой обработчик события отправки документа на печать. Команда Cancel=True отменяет стандартную последовательность действий Excel в этом случае, т.е. распечатку, заменяя ее на вывод сообщения о блокировке:
Само-собой, пользователь может запретить вообще все макросы в книге и наш макрос не сработает. Однако на этот случай тоже есть проверенный рецепт: спрятать все листы книги, кроме одного (с сообщением о необходимости включить макросы) и вынудить пользователя их разрешить ;)
Ссылки по теме
- Отслеживание входа пользователей в книгу Excel
- 4 способа защиты данных в Excel
- Как сделать лист суперскрытым
Ситуация такая: внешний файл .xls не печатается ни на одном принтере,
никаких защит не обнаружено, никаких ошибок или сообщений не выдаёт.
В файле присутствует картинка.
Решил её удалить - не удаляется.
Присмотрелся - после удаления у неё меняется название.
Т.е. эта не одна, а неизвестное количество картинок одна над другой,
так что они выглядят как одна картинка.
Видимо при печати они забивают память принтера,
при этом размер файла не такой уж и большой - килобайт 600.
После удаления нескольких тысяч картинок я плюнул на эту затею и просто скопировал содержимое в другой документ.