Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Сообщений [ 11 ]
- OLD_User
- рядовой
- Неактивен
- Зарегистрирован: 15.12.2011
- Сообщений: 4
Тема: как из макроса открыть документ в режиме "не исполнять макросы"
Задача: Требуется произвести модификацию тела макроса, содержащегося в каждом из группы документов.
Используется в цикле метод Documents.Open
Проблема в том, что при открытии каждого документа начинает исполняться модуль Document_Open(), который не нужно исполнять для решения требуемой задачи.
Вопрос: каким образом "запретить" исполнение макроса при открытии документа?
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
Re: как из макроса открыть документ в режиме "не исполнять макросы"
Нужно в тело Document_Open() в начале поставить запрос MsgBox на выполнение
msg=MsgBox("Выполнить Document_Open()?", vbYesNo)
If msg = 7 Then Exit Sub
- OLD_User
- рядовой
- Неактивен
- Зарегистрирован: 15.12.2011
- Сообщений: 4
Re: как из макроса открыть документ в режиме "не исполнять макросы"
СПАСИБО. На мысль натолкнули... Только файлов в цикле - сотни. Отвечать замучишься! Хотелось бы что-нибудь кардинальное!
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
- За сообщение: 1
Re: как из макроса открыть документ в режиме "не исполнять макросы"
Тогда надо ввести в общий модуль переменную Public boo_DocOpen As Boolean
Код запроса в тело макроса, который запускает цикл.
msg=MsgBox("Выполнить Document_Open()?", vbYesNo)
If msg = 7 Then
Public boo_DocOpen = False
Exit Sub
End if
А в тело Document_Open()
If boo_DocOpen = False Then Exit Sub
Тогда при запуске макроса на цикл один раз будет запрос, а потом Document_Open() не будет выполняться т.к. boo_DocOpen = False
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
Re: как из макроса открыть документ в режиме "не исполнять макросы"
Если у Вас цикл запускается из другого модуля или формы то можно указать ThisDocument.boo_DocOpen = False и можно в принципе обойтись без запроса
- OLD_User
- рядовой
- Неактивен
- Зарегистрирован: 15.12.2011
- Сообщений: 4
Re: как из макроса открыть документ в режиме "не исполнять макросы"
Это решение - продолжение предыдущей мысли. Дальше развивать не обязательно. Спасибо.
Поскольку документов сотни и они уже СОДЕРЖАТ модуль Document_Open. Трудоемко с ними воевать!
Мне бы хотелось получить доступ к механизму отключения исполнения макроса при открытии файла. Типа того, когда система безопасности спрашивает "Отключить макросы" (уровень безопасности - средний).
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
Re: как из макроса открыть документ в режиме "не исполнять макросы"
Вообще-то Безопасность макросов это глобальная настройка Word и помимо Document_Open не будут доступны другие макросы, а так мы просто при boo_DocOpen = False даем команду на выход из процедуры Document_Open, если открываемые документы имеют разные модули Document_Open, то я думаю лучше написать процедуру проверки наличия в модуле ThisDocument переменной boo_DocOpen и при ее отсутствии добавление кода в тело модуля......
- Вождь
- Модератор
- Неактивен
- Зарегистрирован: 07.01.2010
- Сообщений: 745
- Поблагодарили: 181
- За сообщение: 1
Re: как из макроса открыть документ в режиме "не исполнять макросы"
Сам таким не занимался, но идеи есть:
1. Окрыть еще одну копию Word, с которой и работать, отключив в ней макросы.
2. В справке наткнулся на параметр Application.AutomationSecurity, который управляет активностью макросов в документах, открываемых програмно.
Макросы под заказ и готовый пакет - mtdmacro.ru
- aap77
- генерал-полковник
- Неактивен
- Зарегистрирован: 12.09.2011
- Сообщений: 925
- Поблагодарили: 243
Re: как из макроса открыть документ в режиме "не исполнять макросы"
Согласен, но еще одна копия увеличит загрузку ЦП
- viter.alex
- Модератор
- Неактивен
- Откуда: Харьков, Украина
- Зарегистрирован: 21.12.2009
- Сообщений: 884
- Поблагодарили: 140
- За сообщение: 1
Re: как из макроса открыть документ в режиме "не исполнять макросы"
Что ж, решение, похоже, подсказал Вождь. Смотрим пример из справки:
Sub Security()
Dim lngAutomation As MsoAutomationSecurity
With Application
lngAutomation = .AutomationSecurity 'Запоминаем состояние безопасности макросов
.AutomationSecurity = msoAutomationSecurityForceDisable 'Отключаем выполнение макросов
With .FileDialog(msoFileDialogOpen)
'Открываем файл
.Show
.Execute
End With
'Восстанавливаем состояние безопасности
.AutomationSecurity = lngAutomation
End With
End Sub
Лучше день потерять — потом за пять минут долететь!
- OLD_User
- рядовой
- Неактивен
- Зарегистрирован: 15.12.2011
- Сообщений: 4
Re: как из макроса открыть документ в режиме "не исполнять макросы"
Все участникам обсуждения ОГРОМНОЕ СПАСИБО. Результат получен. Все работает. Тема закрыта.
Сообщений [ 11 ]
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
как из макроса открыть документ в режиме "не исполнять макросы"
Для грамотной и эффективной работы с программой Microsoft Word (впрочем, как и с любой другой программой), разумеется, нужно знать хотя бы ее базовые основы. На портале о Microsoft Office Word вы узнаете про: как переформатировать excel в word.
Если же в работе возникают проблемы – всегда можно найти помощь и поддержку в интернете. К примеру, если уж речь идет о Microsoft Word, вы можете посетить сайт Ворд Эксперт. На портале о Microsoft Office Word вы узнаете про: жёсткий перенос word.
Сайт Ворд Эксперт поможет вам найти выход из любой затруднительной ситуации, возникшей при работе с Word. Наш сайт о Microsoft Office Word даст ответ про: программа ворд видеокурс.
В основном разделе сайта вам расскажут все тонкости и секреты работы с программой, предоставят список специально подобранной литературы, ответят на любой вопрос, ознакомят со всей базовой информацией. На портале о Microsoft Office Word вы узнаете про: разрыв строки.
Вы узнаете, как решить проблемы настроек, редактирования, форматирования, как пишутся макросы и создаются шаблоны. Наш сайт о Microsoft Office Word даст ответ про: не удалось открыть документ.
Для вашего удобства, в отдельном разделе, можно найти ответы на вопросы, которые задаются чаще всего – вам не придется перелопачивать гору литературы. На портале о Microsoft Office Word вы узнаете про: как в ворде убрать пустые строки.
Если возникнет необходимость в готовой работе – всегда можно обратиться в раздел заказов. Ваш заказ выполнят, учитывая все ваши пожелания и требования. На портале о Microsoft Office Word вы узнаете про: невидимый разрыв страницы в word.
Так же на сайте создан раздел «общение», где вы можете оставлять свои заметки и пожелания по работе сайта, да и просто – свободно пообщаться. На портале о Microsoft Office Word вы узнаете про: синхронизация и форматирование.