Материал: Программирование на языке Visual Basic для приложений. Подвальный С.Л., Рог А.И

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Range:="Range("Al:A4"), Password:="secret"

'Сообщение пользователю об имени и адресе диапазона

With wksOne.Protection.AllowEditRanges.Item(1) MsgBox "Название диапазона: " & .Title MsgBox "Адрес диапазона: " & .Range.Address End With

10.2. Доступ к документам и коду VBA

Акцентируем внимание на защите документов Word и Excel и интеллектуальной собственности, представленной процедурами VBA в проектах.

10.2.1. Защита паролем документов Word и Excel

Установить пароль для доступа к документу или содержащейся в нем информации — один из способов защиты в приложениях Word и Excel. В приложениях Frontpage, Outlook

и PowerPoint такой возможности не существует, так как документы этих приложений (Web-узлы, электронные сообщения и презентации) изначально предназначены для широкой аудитории, и установка пароля отсечет большую ее часть от возможности ознакомления с этими документами.

В приложениях Word и Excel можно установить два типа пароля для доступа к документу:

пароль для открытия документа;

пароль разрешения записи в документ.

Для любого документа можно задать один или сразу оба пароля. Следует использовать команду > Файл > Сохранить как основного меню приложения или воспользоваться методом saveAs приложения при установке паролей в коде VBA (приложения Office XP поддерживают и такой способ).

Команда Сохранить как (рис. 10.6) отображает общее для приложений Office XP диалоговое окно Сохранение документа, нажатие на кнопке Сервис в панели команд которого приводит к отображению раскрывающегося меню. В меню следует выбрать команду Параметры безопасности при рабо-

163

Рис. 10.6. Метод saveAs приложения при установке паролей в коде VBA

Рис. 10.7. Раскрывающееся меню по нажатию кнопки Сервис

команды Сохранить как

164

те в приложении Word или команду Общие параметры в приложении Excel для отображения соответственно диалоговых окон Безопасность или Параметры сохранения, в которых в поля пароль для открытия файла и пароль разрешения за-

писи диалогового окна Безопасность приложения Word или поля Пароль для открытия и Пароль для изменения диало-

гового окна Параметры сохранения приложения Excel ввести значения соответствующих паролей.

В приложениях Office XP добавлена возможность задания типа шифрования документа, который устанавливается в диалоговом окне Тип шифрования (рис. 10.8), отображаемом при нажатии кнопки Дополнительно, расположенной в диало-

говых окнах Безопасность и Параметры сохранения.

Рис. 10.8. Диалоговое окно "Тип шифрования"

После задания паролей и при необходимости типа шифрования документов Word или Excel можно задать имя файла и нажатием на кнопке Сохранить диалогового окна Сохранение документов завершить процедуру установки паролей для чтения и изменения документа.

При вводе пароля любой вводимый символ отображается в виде звездочки (*). Поэтому до начала его набора на клавиатуре следует правильно установить используемую раскладку и регистр клавиатуры.

165

В приложениях Word и Excel установить пароли открытия документа и разрешения записи можно не только во время выполнения команды Сохранить как. Команда Сервис > Параметры этих приложений отображает диалоговое окно Па-

раметры, на вкладке Безопасность (Сохранение – в 2000)

которого можно в любой момент задать или удалить пароли на открытие документа или разрешение записи.

Иногда возникает необходимость установить пароли защиты документа из процедуры VBA. Подобная ситуация может возникнуть, например, если системный администратор запретил установку паролей документов через команды интерфейса приложения Office. Этот запрет не влияет на возможность установки паролей для документов из кода VBA, в котором для этих целей следует использовать команду saveAs активного в данный момент документа.

'В приложении Word With ActiveDocument

.SaveAs FileName:="C:\Temp\l.doc", _ Password:="123", WritePassword:="456"

End With

‗В приложении Excel With ActiveWorkbook

.SaveAs Filename:="C:\Temp\l.xls", _ Password:="123", WriteResPassword:="456"

End With

Обратите внимание на небольшие отличия в названиях ключевых параметров, задающих пароль разрешения записи в приложениях Word и Excel, a также на задание в них активных документов. Аналогичную картину мы будем наблюдать и при открытии защищенных паролем документов методом open в этих двух приложениях.

166

Документы, защищенные паролем открытия и разрешения записи, сохраняются в закодированном виде, чтобы исключить возможность доступа к паролю с помощью сторонних средств просмотра содержимого файла, например, редактора Far. Для этих целей приложения Office XP по умолчанию используют симметричный алгоритм шифрования RC4, совмес-

тимый с документами Office 97/Office 2000.

В случае задания паролей через код VBA для обеспечения секретности следует запретить доступ к процедурам VBA.

Чтобы открыть документ, защищенный паролем открытия, нужно ввести правильный пароль в диалоговое окно Пароль, появляющееся при попытке открыть файл подобного документа. Если для документа установлен второй тип защиты, то после введения верного пароля открытия приложение потребует ввести пароль разрешения записи еще в одном диалоговом окне Пароль. Можно вообще не задавать пароль для модификации документа и открыть его только для чтения, нажав кнопку Только чтение. В этом случае позволяется осуществлять разнообразные его изменения, но сохранить их в этом же файле будет невозможно. Любая подобная попытка будет отвергнута приложением Office XP с отображением сообщения о том, что документ открыт только для чтения. Правда, его можно сохранить под другим именем, причем все установленные пароли в первом документе будут автоматически перенесены и во вновь создаваемый.

Следует быть внимательным с парольной защитой. Если пароль забыт или утерян, то не существует способов открытия документов в приложении. Рекомендуется записывать их на бумаге и хранить в надежном месте.

При открытии защищенного паролем документа методом Open приложения Word следует задать правильные значения установленных паролей открытия и разрешения записи.

Public Sub openDoc()

On Error GoTo err_Handle 'Перехват ошибок

Documents.Open FileName:="C:\Temp\l.doc", _

167

Источник: https://studfile.net/preview/16565567/