VBA: создание документа Word, доступного только для чтения / защищенного паролем, при открытии (не редактируется) - PullRequest
0 голосов
/ 01 октября 2019

Как создать программу vba, которая обеспечивает функцию только для чтения, но также требует пароль для открытия документа при запуске, и я не ссылаюсь на пароль? Мне нужно будет отредактировать документ, если он доступен только для чтения.

Каждый раз, когда я включаю функцию Readonly, используя код для документа, он стирает пароль с документа и имеет только для чтения, но редактируемый.

wd.SaveAs Filename:="C:\Users\Documents\" & URNa & " - " & URNb & ".docx", Password:=CombinePass, 
ReadOnly=True

1 Ответ

0 голосов
/ 02 октября 2019

Word имеет два вида защиты паролем:

  • в файле * уровень 1005 *
  • в документе * уровень 1009 *

Метод SaveAs работает на уровне файлов. Когда указан пароль, файл не открывается, если пароль не указан.

Параметр ReadOnlyRecommended, установленный на true, позволяет открывать документ, но его нельзя сохранить обратно под тем же именем .

Итак 1) ReadOnlyRecommended не делает то, что ожидает большинство людей, и 2) два параметра по существу противоречат друг другу - оба не могут использоваться вместе.

Для того, чтобы файл моготкройте, но убедитесь, что содержимое файла не может быть отредактировано, необходимо защитить это содержимое на уровне документа:

wd.Protect(Word.WdProtectionType.wdAllowOnlyReading, Type.Missing, "test", Type.Missing, Type.Missing);

Обратите внимание, что этот вид защиты также позволяет редактировать определенные части документа, когда эти частиуказаны до применения защиты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...