Интернет-журнал "Домашняя лаборатория", 2007 №7
Шрифт:
2. Если программа как-то оформляет текст особого документа, который надо создавать отдельно от всех (к примеру, программа для красивого форматирования поздравительных открыток), то ее лучше оформить как шаблон и создавать на его основе документы, а потом уже эти документы заполнять содержанием с помощью программы.
3. Если же программа выполняет какие-нибудь серьезные операции с текстом, постоянно требуется пользователю или работает с многими документами сразу, то тогда ей прямая дорога в папку автозагружаемых файлов Word. Формат файла, помещаемого в эту папку — шаблон документа (и только он).
Потом необходимо создать документ с программой. Лучше всего поступить так — создать пустой документ необходимого формата — шаблон или простой
— Макросы — Организатор" или "Сервис — Шаблоны и надстройки — Организатор") скопировать в него все готовые компоненты программы из шаблона или документа, где велась разработка (обычно это Normal.dot), и сохранить под каким-нибудь красивым именем. В этом случае в полученном файле будут присутствовать только компоненты программы, что послужит к уменьшению его размера.
Если разработка программы велась в каком-либо отдельном шаблоне или документе, то можно просто убрать из файла, содержащего ее, лишние модули (которые могли там оказаться, например, в процессе экспериментирования с командами Visual Basic for Applications), почистить компоненты самой программы — удалить закомментированные ненужные команды, излишние комментарии.
Ну и, наконец, следует сделать способ вызова программы. Без этого даже с очень хорошо написанной программой сможет работать лишь ее создатель, да и то не всегда. К тому же красивая обложка всегда радует глаз. Можно с помощью диалогового окна "Сервис — Настройка — Команды — Макросы" назначить макросу пункт меню или кнопку на стандартной панели путем простого перетаскивания. Можно там же назначить ему комбинацию клавиш для вызова. А можно, что считается лучшим вариантом, создать новую панель инструментов и уже на ней поместить кнопки для вызова макросов. Надо только сохранить все изменения именно в документе или шаблоне с макросами, а не в своем Normal.dot или где-нибудь еще.
В окне "Сервис — Настройка — Команды — Макросы" (рис. 7.1) название каждого макроса отображается так: сначала пишется имя проекта, затем — имя его модуля (можно изменить в окне свойств, выделив мышью название модуля), а затем — собственно имя макроса (то, что стоит после команды начала программы Sub).
Рис. 7.1. Список макросов, которым можно назначить кнопки.
Название проекта можно задать с помощью команды "Свойства" (в англоязычных версиях — Project Properties) контекстного меню этого названия (рис. 7.2), а также через Окно свойств (рис. 7.3), предварительно выделив прежнее название проекта.
Рис. 7.2. Изменение имени проекта через пункт меню "Свойства проекта".
Рис. 7.3. Изменение имени проекта через Окно свойств.
По умолчанию каждому новому проекту дается название TemplateProject (если этот проект содержится в шаблоне) или просто Project (если этот проект содержится в документе Word). Проект, содержащийся в шаблоне Normal.dot, по умолчанию так и называется — Normal.
Обратите внимание, что несмотря на то, что в одном документе может содержаться лишь один проект, названия у документа и проекта вполне спокойно могут различаться. Поэтому в Менеджере проектов после имени проекта всегда указывается в скобках имя документа, в котором этот проект содержится.
Имя проекта может содержать как русские, так и английские символы, но не должно иметь пробелов — при попытке задания проекту имени с пробелами будет выдано предупреждение (рис. 7.4).
Рис. 7.4. Пробелы в имени проекта недопустимы — иначе будет ошибка.
Назначить кнопку или сочетание клавиш для вызова формы невозможно. Необходимо вставить команду вызова формы ("ИмяФормы. Show") в текст программы в модуле, и уже затем назначить кнопку или сочетание клавиш для вызова именно этой программы.
Для вызова программы очень удобно использовать кнопки с иконками. Для этого нужно всего лишь перетащить название нужного макроса из окна "Настройка" на какую-нибудь (лучше специально созданную) панель инструментов, а затем выбрать значок для кнопки и задать стиль отображения — лучше всего без текста, "Основной стиль". Можно также оставить на кнопке текст с названием макроса, однако, тогда этот текст стоит соответственно отредактировать.
Стоит помнить, что при подведении курсора мыши к кнопке, вызывающей макрос, отображается всплывающая подсказка с названием макроса (по умолчанию берется название макроса после команды начала программы Sub), поэтому макросам неплохо давать осмысленные имена. Однако если макрос назван по-русски, то в нелокализованных версиях Word он не будет вызываться кнопкой, созданной в русской версии.
Впрочем, всплывающие подсказки кнопок можно задать самостоятельно с помощью команды "CommandBars("Имя панели").Controls("Номер иконки на панели").TooltipText = "Текст подсказки"". К сожалению, через диалоговое окно настройки панелей и кнопок сделать это не удастся, поэтому для ввода этой команды придется использовать отдельный модуль или Окно отладки.
Вам может не понравиться весьма ограниченный выбор значков для кнопок, предлагаемый Word'ом. Этот набор, вызываемый из меню "Выбрать значок для кнопки" в режиме настройки панелей, действительно, маловат. Но никто не мешает с помощью других команд того же меню скопировать значок с любой другой кнопки на любой другой панели или создать его самому во встроенном редакторе изображений на кнопках (рис. 7.5).
Рис. 7.5. Редактор кнопок. Не забывайте про него!
Кроме того, красивые значки можно извлечь из "недр" Office, — а он содержит в себе около двух тысяч разнообразных значков. Для этого достаточно ввести в Окне отладки команды
Set dd = ActiveDocument.CommandBars.Add("Panel")
CommandBars("Panel").Controls.Add(Type:=msoControlButton, ID:=797).Faceld = x
где x — любое число от 1 до 3000. Тогда на указанной в команде панели — с именем "Panel" — будет создана кнопка со значком, который можно скопировать на свою кнопку. Не для всех кодов существуют значки, поэтому иногда созданная таким образом кнопка будет пустой, — попробуйте еще раз с другим х[235]. Параметр Id, упоминаемый в команде, задает то действие, которое должно быть выполнено при нажатии на создаваемую кнопку, в данном случае — открытие диалогового окна "Настройка".
Весьма желательно для программного добавления своих кнопок использовать создаваемые отдельно панели инструментов, так как работать со стандартными, исходно входящими в состав Word'а панелями иногда не удается, в частности, из-за того, что в локализованных версиях Microsoft Office, в том числе и в русской, отображаемые и истинные их имена не совпадают[236].
Более подробно о том, как создавать и удалять кнопки на панелях инструментов, какими эти кнопки могут быть, вы можете почитать в Справочной системе VBA (например, начав с контекстной справки по слову CommandBars). В Справочной системе эта информация изложена весьма подробно и снабжена множеством примеров. Однако для простого назначения кнопок программам на VBA хватит и вышеизложенной информации.