Выбрать главу

Если в качестве способа вызова макроса выбрана панель инструментов с кнопками, то после окончания работы над ней стоит повторить создание нового документа и вновь скопировать все компоненты программы в новый документ вместе с панелью. Такое преобразование позволит существенно сократить размер файла с программой, так как вследствие ошибки программистов Microsoft при редактировании в Microsoft Office макросов и панелей инструментов файл с программой сильно увеличивается в размерах — до полутора-двух раз. Впрочем, в OfficeXP данная рекомендация уже неактуальна.

Не стоит забывать и об информативном руководстве для пользователя, особенно если программа будет распространяться через Интернет. Лучше всего такое руководство оформить в отдельном текстовом файле или, если оно имеет большой объем, в виде набора связанных html-документов.

При помещении программы в Интернет весь набор ее файлов следует заархивировать в формате Zip (наилучший вариант) или Rar. При желании архив с программой можно сделать самораскрывающимся — тогда пользователям не будет нужна еще и программа-архиватор, чтобы воспользоваться вашей программой. Однако самораскрывающися архивы имеют расширение ехе и вследствие этого воспринимаются сетевой общественностью несколько настороженно.

Создание инсталлятора для программы — отдельная большая тема, выходящая за рамки данной книги. Для начала можно посоветовать обходиться вообще без него (просто указывая в документации к программе, что файл с ней, например, нужно скопировать в папку автозагружаемых файлов Word) или использовать уже готовые инсталляторы, — например, из разработок "Untaco", "ВерсткаТекстаКнижкой", про которые рассказывается в 9-й главе, модифицируя их под свои нужды.

НЕМНОГО О ПАНЕЛЯХ, ШАБЛОНАХ И МАКРОСАХ

Панель инструментов Microsoft Word 97/2000/ХР, то есть ее название, имена, рисунки, всплывающие подсказки кнопок, расположенных на ней, информация о связи этих кнопок с командами и макросами может храниться либо в шаблоне Microsoft Word 97/2000/ХР (с расширением. dot), либо в документе Word (с расширением. doc). При этом имеет место быть следующее:

1. Если панель инструментов сохранена в шаблоне Normal.dot, то она доступна всегда, когда открыт Word.

2. Если панель инструментов сохранена в шаблоне, который загружен как глобальный — то есть помещен в папку автозагружаемых файлов Word, то она также доступна всегда, когда открыт Word, но ее можно убрать, выгрузив шаблон с помощью диалогового окна "Сервис — Шаблоны и надстройки" (или удалив шаблон из папки автозагружаемых файлов). Местонахождение папки автозагружаемых файлов можно посмотреть в окне "Сервис — Параметры — Расположение" (рис. 7.6). Для Word97 это обычно папка..\Microsoft Office\Office\Startup, а для Word2000/XP по умолчанию назначается папка C: \Windows\Application Data\Microsoft\Word\Startup, однако эти пути всегда можно поменять на более удобные.

Рис. 7.6. В этом окне можно посмотреть расположение папки автозагружаемых файлов.

3. Если панель инструментов сохранена в шаблоне, на котором основаны документы, например, в одном из шаблонов, находящихся в папке шаблонов пользователя Word (посмотреть можно там же, для Word97 по умолчанию назначается папка..\Microsoft Office\Offiсе\Шаблоны, а для Word2000 — С: \Windows\Application Data\Microsof\Шаблоны) и ее подпапках, то она доступна тогда, когда этот шаблон присутствует на компьютере и активен документ, созданный на его основе. (Если документ просто открыт в Word, но неактивен, то панель инструментов все равно не видна.)

4. Если панель инструментов сохранена в каком-либо документе, то она доступна тогда, когда активен этот документ.

Панели инструментов можно копировать из одного шаблона или документа в другой с помощью диалогового окна "Организатор" (рис. 7.7).

Рис. 7.7. Диалоговое окно "Организатор". С его помощью можно копировать панели инструментов из одного шаблона в другой.

Информация о том, какие панели при предыдущем выходе из Word'а были видимы, а какие нет, как они располагались и где находились на экране (она требуется, чтобы восстановить эти их параметры при новой загрузке Word), сохраняется в системном реестре. Информация же о том, как должны располагаться панели при первой загрузке шаблона, находится в самом шаблоне и используется также при отсутствии нужной информации в реестре.

С макросами, которым назначены кнопки на панелях, дело обстоит так.

Каждой кнопке панели инструментов, вызывающей макрос, ставится в соответствие имя вызываемого ею макроса, которое состоит из имени модуля, содержащего этот макрос, и имени самого этого макроса в модуле. Узнать имена модуля и макроса в модуле можно в редакторе VBA (рис. 7.8).

Рис. 7.8. Выделено название макроса DocsMerger в модуле UniterDocs.

При изменении хотя бы одного компонента имени кнопка становится неработоспособной. Всплывающая подсказка на кнопке, возникающая по умолчанию, совпадает с именем макроса в модуле, причем в случае, если имя макроса было составлено из двух-трех слов, начинающихся с большой буквы, например, "UniterDocs", то в подсказке эти слова разделяются пробелом (рис. 7.9).

Рис. 7.9. Всплывающая подсказка на кнопке вызова макроса. Обратите внимание на возникшие в ней пробелы.

Несмотря на то, что при создании кнопки путем перетаскивания пиктограммы, изображающей макрос, на какую-нибудь панель инструментов, в тексте, сопровождающем эту пиктограмму, указывается, в каком проекте макрос находится, этот параметр Word'ом не учитывается. Поэтому имеет место быть следующее, — если в глобально загруженном шаблоне (то есть помещенном в папку автозагружаемых файлов Word) есть макрос с таким же названием и именем, что и в Normal.dot, то при нажатии кнопки, вызывающей этот макрос (расположенной на любой панели), выполняется макрос из Normal.dot, а не из глобального шаблона.

Если при запуске Word в папке Шаблоны не оказывается шаблона Normal.dot, то он создается самим Word'ом на основании стандартов по умолчанию. В него помещается изначальный набор панелей инструментов.

Поиск модуля и имени макроса при нажатии кнопки (при этом не имеет значения, где панель сохранена) идет в следующем порядке: "Активный документ" — "Шаблон, на котором основан документ" — "Normal.dot" — "Шаблон, загруженный глобально через папку автозагружаемых файлов Word или окно "Шаблоны и надстройки".

Кнопки с панелей можно свободно перемещать с панели на панель, при этом их связь с макросами сохраняется вне зависимости от того, где макрос находится. Если макрос недоступен (скажем, удален глобальный шаблон с ним), то кнопка просто не работает.

А КАК В EXCEL?

В Microsoft Excel макросы могут храниться в книгах Excel, содержась как в отдельных модулях, так и в программной части листов книг и книги в целом.

Для вызова макроса можно использовать сочетание клавиш, пункт меню или кнопку на панели инструментов.

Создать панель инструментов можно в диалоговом окне "Сервис — Настройка — Панели инструментов". Для создания кнопки на панели инструментов, вызывающей макрос, следует открыть окно "Сервис — Настройка — Команды — Макросы" (рис. 7.10), и, перетащив иконку "Настраиваемая кнопка" на какую-либо панель инструментов, выбрать из ее контекстного меню пункт "Назначить макрос" (рис. 7.11), а в появившемся окне (рис. 7.12) выбрать тот макрос, который следует кнопке назначить.