Несмотря на то, что при создании кнопки путем перетаскивания пиктограммы, изображающей макрос, на какую-нибудь панель инструментов, в тексте, сопровождающем эту пиктограмму, указывается, в каком проекте макрос находится, этот параметр Word'ом не учитывается. Поэтому имеет место быть следующее, — если в глобально загруженном шаблоне (то есть помещенном в папку автозагружаемых файлов Word) есть макрос с таким же названием и именем, что и в Normal.dot, то при нажатии кнопки, вызывающей этот макрос (расположенной на любой панели), выполняется макрос из Normal.dot, а не из глобального шаблона.
Если при запуске Word в папке Шаблоны не оказывается шаблона Normal.dot, то он создается самим Word'ом на основании стандартов по умолчанию. В него помещается изначальный набор панелей инструментов.
Поиск модуля и имени макроса при нажатии кнопки (при этом не имеет значения, где панель сохранена) идет в следующем порядке: "Активный документ" — "Шаблон, на котором основан документ" — "Normal.dot" — "Шаблон, загруженный глобально через папку автозагружаемых файлов Word или окно "Шаблоны и надстройки".
Кнопки с панелей можно свободно перемещать с панели на панель, при этом их связь с макросами сохраняется вне зависимости от того, где макрос находится. Если макрос недоступен (скажем, удален глобальный шаблон с ним), то кнопка просто не работает.
А КАК В EXCEL?
В Microsoft Excel макросы могут храниться в книгах Excel, содержась как в отдельных модулях, так и в программной части листов книг и книги в целом.
Для вызова макроса можно использовать сочетание клавиш, пункт меню или кнопку на панели инструментов.
Создать панель инструментов можно в диалоговом окне "Сервис — Настройка — Панели инструментов". Для создания кнопки на панели инструментов, вызывающей макрос, следует открыть окно "Сервис — Настройка — Команды — Макросы" (рис. 7.10), и, перетащив иконку "Настраиваемая кнопка" на какую-либо панель инструментов, выбрать из ее контекстного меню пункт "Назначить макрос" (рис. 7.11), а в появившемся окне (рис. 7.12) выбрать тот макрос, который следует кнопке назначить.
Рис. 7.10.
Рис. 7.11.
НажмРис. 7.12.
Рис. 7.13.
Панели инструментов могут храниться как в книгах, так и в файле настроек Excel с расширением. xlb. В зависимости от версии Microsoft Office этот файл находится либо в системном каталоге, либо в специальной папке в разделе пользовательских настроек (например, в Windows2000 это папка D: \Documents and Settings\Администратор\Application Data\Microsoft\Excel), имя же этого файла соответствует имени пользователя Windows в сочетании с версией Excel'а.
Создать панель инструментов можно только в файле настроек Excel — с помощью диалогового окна "Сервис — Настройка — Панели инструментов". Однако если необходимо, чтобы панель инструментов хранилась в книге Excel, ее следует туда скопировать с помощью диалогового окна "Вложить" (открывается при нажатии кнопки "Вложить" в диалоговом окне "Сервис — Настройка — Панели инструментов"), см. рис. 7.14.
Рис. 7.14.
При работе с панелями инструментов в Excel имеет быть следующее.
1. Скопированная в книгу панель инструментов изменяться не может. Все изменения, вносимые в отображаемую на экране панель инструментов, делаются в той панели, которая хранится в файле настроек Excel. Чтобы эти изменения были перенесены в панель инструментов, находящуюся в книге, необходимо ее заново туда скопировать с помощью диалогового окна "Сервис — Настройка — Панели инструментов — Вложить", предварительно удалив старые.
2. Если в файле настроек Excel есть панели инструментов, одноименные сохраненным в книге, то даже при открытии этой книги отображаются именно они, а не те, что сохранены в книге. Две одноименные панели инструментов в Excel существовать не могут.
3. При открытии книги, содержащей сохраненную в ней панель инструментов, Excel автоматически копирует эту панель в файл настроек Excel. В результате эта панель будет доступна и после закрытия книги. Если кнопки такой панели были связаны с макросами, то в файле настроек Excel в параметрах кнопок данной панели указывается путь к файлу книги Excel, содержащей назначенный данной кнопке макрос, и название этого макроса. Поэтому при переименовании, перемещении или удалении файла с макросом, вызываемым кнопкой, находящейся на панели инструментов, автоматически скопированной из файла с макросом, где она была ему назначена, возникнет ошибка.