Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.07.2009, 07:24   #1
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
Сообщение Можно ли отключить макрос?

У меня есть макрос, который срабатывает при открытии документа. Это занимается некоторое время. В определенных ситуациях мне не надо чтобы он срабатывал. Есть ли в ВБА тумблер (выключатель) макросов, или же надо их удалять?

Заранее спасибо.
Busine2009 вне форума Ответить с цитированием
Старый 04.07.2009, 08:09   #2
akokin
Пользователь
 
Регистрация: 02.08.2008
Сообщений: 94
По умолчанию

Busine2009, если у вас Word 2003, то откройте диалог "Безопасность" (Сервис-Макрос-Безопасность) и установите на вкладке "Уровень безопасности" параметр "Средняя".
Если 2007, то Параметры Word - вкладка Центр управления безопасностью - Параметры макросов - Отключить все с уведомлением.
И при запуске макроса в документе будет отображаться уведомление, где уже вы сможете запустить макрос, либо же не подключать его.
akokin вне форума Ответить с цитированием
Старый 04.07.2009, 08:30   #3
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Пропишите в вашем макросе условие, при котором он не должен выполняться. Например, такое условие можно поставить, чтобы не запускать макрос в июле:
Код:
Private Sub Document_Open()
  If Month(Now) = 7 Then Exit Sub
'Дальше идет код макроса
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 04.07.2009, 08:50   #4
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию

У меня макрос универсальный, а не для одного документа, то есть Sub AutoOpen(), поэтому средства безопасности не будут работать.
То есть, как я понял, тумблеров таких не имеется.

Смысл в том, что у меня макрос по поиску скрытого текста. Если я уже один раз открыл документ и знаю, что в нем нет скрытого текста, то хотелось бы, чтобы макрос не срабатывал при следующем его открытии - это касается больших документов более 200 страниц. Т.к. при работе с документами часто бывают ситуации, что вылетаешь по разным и непонятным причинам и затем снова надо открыть этот же документ, то макрос срабатывает, что может занять секунд 20-30.

Последний раз редактировалось Busine2009; 04.07.2009 в 08:54.
Busine2009 вне форума Ответить с цитированием
Старый 04.07.2009, 09:09   #5
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

В таком случае могу предложить использовать какое-нибудь свойство документа, например, комментарии, и при старте макроса его проверять. Если оно пустое, то макрос должен срабатывать, если в нем уже записано кодовое слово, например Checked, то выходить из макроса.
Код:
Private Sub AutoOpen()
  If ActiveDocument.BuiltInDocumentProperties(wdPropertyComments) = "Checked" Then Exit Sub
  'Текст макроса
  
  
  'В самом конце записываем
  ActiveDocument.BuiltInDocumentProperties(wdPropertyComments) = "Checked"
End Sub
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 04.07.2009, 09:12   #6
Busine2009
Новичок
Джуниор
 
Регистрация: 23.05.2009
Сообщений: 167
По умолчанию

Спасибо, гляну, да и для общего развития пригодится, почаще заходить в свойства и что-то там делать.
Busine2009 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос постоянно обрабатывает события. При открытии другой книги макрос обрывается. Ples Microsoft Office Excel 8 17.12.2016 18:15
Отключить Scroll valerij Microsoft Office Excel 2 14.05.2009 02:39
Запереть макрос можно? zander Microsoft Office Excel 1 15.02.2009 15:40
Можно ли макросом, отключить колесико мышки valerij Microsoft Office Excel 8 18.11.2008 16:52
Как отключить монитор??? Манжосов Денис :) Помощь студентам 5 14.07.2008 17:11