Как открыть встроенный объект в электронной таблице только для чтения через Excel VBA - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть несколько объектов, встроенных в скрытый лист в книге, в которой выполняется код VBA. Эти объекты (word, excel, pdf и т. Д.) Являются всего лишь шаблонами, и мне нужно открыть их копию или открыть их только для чтения при нажатии на кнопку команды, чтобы содержимое шаблона оставалось неизменным.

Я искал в Интернете, но не нашел способа открыть эти встроенные объекты только для чтения. Я использую этот код, но сохранить как операцию не удалось.

Private Sub M114_Click()
Dim WDObj As Object
Dim WDApp As Object

Set WDApp = GetObject(, "Word.Application")
Set WDObj = Sheets("Tools").OLEObjects("MO")

WDObj.Activate

WDApp.ActiveDocument.SaveAs ("MO_copy.doc")
Set WDObj = Nothing
Set WDApp = Nothing
End Sub

1 Ответ

0 голосов
/ 04 сентября 2018

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


На примере документа Word:

Вы можете использовать функцию защиты Word, чтобы защитить ее, и при желании можете предоставлять разные права различным пользователям.

  1. Перейдите на вкладку Review на ленте.
  2. В группе Защита нажмите Restrict Editing
  3. В разделе 2 параметров «Ограничить редактирование» в боковой части экрана установите флажок « Разрешить только этот тип редактирования » и убедитесь, что раскрывающийся список установлен до **No Changes (Read Only)**.
  4. Установите другие параметры защиты по желанию.
  5. В разделе 3 нажмите Да, начните применять .
  6. Сохраните и закройте документ, а затем вставьте его в файл Excel.

В качестве альтернативы, если встроенный объект связан с исходным файлом, вы можете установить для этого файла значение «Только чтение» в свойствах файла Windows. Это не будет работать, если объект не связан с файлом.

...