MsgBox «Работает процедура глобального шаблона»

End Sub

3. Создайте новый документ. Повторно откройте окно Макрос, найдите на нем командную кнопку Организатор и нажмите ее. Word выведет новое диалоговое окно, с помощью которого можно копировать макросы из шаблона в документ и обратно. Обратите внимание на то, что копируется не одна процедура, а весь модуль NewMacros. Для этого выделите NewMacros и нажмите кнопку Копировать. Аналогичный модуль кода будет создан в новом документе.

4. Измените сообщение, которое должно выводиться при запуске автомакроса из документа. Для этого откройте окно редактора VBE (<Сервис>–<Макрос>–<Редактор Visual Basic>), найдите или откройте в нем дочернее окно менеджера проектов (Проект или Project). Далее выберите название проекта, соответствующее имени документа, щелкните мышью по значку «+» слева от названия и откройте программный модуль NewMacros. В окне текста программ измените текст сообщения, как это указано ниже:

Sub AutoOpen()

MsgBox «Работает процедура документа»

End Sub

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

5. Сохраните документ под именем Документ с сообщением Иванов.doc в папке Мои документы и закройте его.

6. Создайте второй документ. По аналогии с предыдущими пунктами скопируйте в него автомакрос с сообщением, а затем измените текст выводимого сообщения:

Sub AutoOpen()

MsgBox «Работает процедура общего шаблона»

End Sub

7. Сохраните этот документ как общий шаблон (<Файл>–<Сохранить как>: тип файла – шаблон документа, имя файла – Общий шаблон с сообщением Иванов.dot). Для того чтобы сделать общий шаблон загружаемым автоматически, необходимо сохранить его в папке StartUp. Путь к этой папке можно узнать, открыв диалоговое окно <Сервис>–<Параметры>–<Расположение>, строка Автозагружаемые. После сохранения закройте созданный общий шаблон.

8. Откройте диалоговое окно <Сервис>-<Шаблоны и надстройки>. С помощью кнопки Добавить найдите местонахождение сохраненного общего шаблона и выберите его. Убедитесь, что имя шаблона появилось в среднем окне Общие шаблоны и надстройки и отмечено галочкой. Щелкните кнопку ОК, и окно закроется.

9. Создайте третий документ. По аналогии с вышеприведенной методикой скопируйте в него автомакрос и измените текст сообщения следующим образом:

Sub AutoOpen()

MsgBox «Работает процедура присоединенного шаблона»

End Sub

10. Сохраните третий документ в папке Мои документы с именем Присоединенный шаблон Иванов.dot и типом файла Шаблон документа, после чего закройте его.

11. Откройте ранее сохраненный Документ с сообщением Иванов. Какое из сообщений будет выведено на экран?

12. С помощью меню <Сервис>-<Шаблоны и надстройки> откройте диалоговое окно Шаблоны и надстройки и с помощью кнопки Присоединить найдите ранее сохраненный Присоединенный шаблон Иванов. Сохраните изменения в документе и закройте его вместе с приложением. Теперь у вас имеется три типа шаблонов и один документ, и в каждом из них размещена одна и та же автоматически запускаемая процедура. Поскольку окно сообщений MsgBox обладает модальностью, одновременно может быть выведено только одно сообщение. По очередности вывода сообщений можно узнать, какой из вышеупомянутых файлов имеет приоритет в исполнении кода. При этом одноименные программные модули могут конфликтовать друг с другом, что иногда сопровождается сообщением об ошибке.

13. Найдите в папке Мои документы файл с именем Документ с сообщением Иванов и откройте его. Какое сообщение будет выведено на экран? Что можно сказать о макросах, хранимых в других файлах?

14. Откройте еще какой–либо документ. Если нет документов формата Microsoft Word, можно открыть документ другого формата. Какое сообщение вы получаете в этом случае?

15. Закройте файл Документ с сообщением Иванов. Не закрывая приложения, вновь откройте этот же документ, удерживая нажатой левую кнопку Shift клавиатуры. Какое сообщение выведено на экран? Почему?

16. Войдите в редактор VBE и удалите программный код макроса AutoOpen() из файла Документ с сообщением Иванов. Сохраните изменения в документе и закройте его.

17. Вновь откройте Документ с сообщением Иванов. Какое сообщение вы получили на этот раз? Укажите в отчете приоритет в выполнении автоматически запускаемых макросов из файлов Microsoft Word. Усматриваете ли вы в заданном приоритете угрозу инфицирования глобального шаблона через уже зараженный документ? Закройте Документ с сообщением Иванов.

18. В редакторе VBЕ откройте окно кода NewMacros глобального шаблона Normal.dot и создайте новую процедуру AutoExec() следующего вида:

Sub AutoExec()

WordBasic.DisableAutoMacros

End Sub

Эта команда будет действовать в течение одного сеанса работы Word.

19. Закройте и вновь откройте Microsoft Word. Сопровождается ли открытие текстового процессора какими–либо сообщениями?

20. Откройте файл Документ с сообщением Иванов. Удалось ли вам нейтрализовать автомакрос в документе или присоединенном к нему шаблоне? Закройте файл Документ с сообщением Иванов.

21. Удалите процедуру AutoExec() в глобальном шаблоне. Создайте в модуле NewMacros глобального шаблона событийную процедуру, которая будет обрабатывать события, связанные с открытием документов.

Sub FileOpen()

WordBasic.DisableAutoMacros

Наши рекомендации