В окне "Сервис — Настройка — Команды — Макросы" название каждого макроса отображается так: сначала пишется имя проекта (его можно посмотреть и изменить в Окне свойств редактора VBA, выделив мышью название нужного проекта), затем — имя его модуля (тоже можно изменить в окне свойств, выделив мышью название модуля), а затем — собственно имя макроса (то, что стоит после команды начала программы Sub).
Назначить кнопку или сочетание клавиш для вызова формы невозможно. Необходимо вставить команду вызова формы ("ИмяФормы. Show") в текст программы в модуле, и уже затем назначить кнопку или сочетание клавиш для вызова именно этой программы.
Для вызова программы очень удобно использовать кнопки с иконками. Для этого нужно всего лишь перетащить название нужного макроса из окна «Настройка» на какую-нибудь (лучше специально созданную) панель инструментов, а затем выбрать значок для кнопки и задать стиль отображения — лучше всего без текста, "Основной стиль".
Можно также оставить на кнопке текст с названием макроса, однако тогда этот текст стоит соответственно отредактировать. Стоит помнить, что при подведении курсора мыши к кнопке, вызывающей макрос, отображается всплывающая подсказка с названием макроса (берется название макроса после команды начала программы Sub), поэтому макросам неплохо давать осмысленные имена. Однако если макрос назван по-русски, то в нелокализованных версиях Word он не будет вызываться кнопкой, созданной в русской версии.
Всплывающие подсказки кнопок можно задать самостоятельно с помощью команды " CommandBars("Имя панели"). Controls("Номер иконки на панели"). TooltipText = "Текст подсказки"".К сожалению, через диалоговое окно настройки панелей и кнопок сделать это не удастся, поэтому для ввода этой команды придется использовать отдельный модуль или Окно отладки.
Вам может не понравиться весьма ограниченный выбор значков для кнопок, предлагаемый Word'ом. Этот набор, вызываемый из меню "Выбрать значок для кнопки" в режиме настройки панелей, действительно, маловат. Но никто не мешает с помощью других команд того же меню скопировать значок с любой другой кнопки на любой другой панели или создать его самому во встроенном редакторе изображений на кнопках. Кроме того, красивые значки можно извлечь из «недр» Office, — а он содержит в себе около двух тысяч разнообразных значков! Для этого достаточно ввести в Окне отладки команду
CommandBars("имя существующей панели инструментов"). Controls.Add(Type:=msoControlButton, ID:=797). FaceId = x
где х —любое число от 1 до 3000. Тогда на указанной в команде панели будет создана кнопка со значком, который можно скопировать на свою кнопку. Не для всех кодов существуют значки, поэтому иногда созданная таким образом кнопка будет пустой, — попробуйте еще раз с другим х. [11] Существует программа "Генератор иконок", специально предназначенная для извлечения иконок из недр Word'а. О ней рассказано в следующей главе.
Если в качестве способа вызова макроса выбрана панель инструментов с кнопками, то после окончания работы над ней стоит повторить создание нового документа и вновь скопировать все компоненты программы в новый документ вместе с панелью. Такое преобразование позволит существенно сократить размер файла с программой, так как вследствие ошибки в Office при редактировании макросов файл с программой сильно увеличивается в размерах — до полутора-двух раз. Впрочем, в OfficeXP данная рекомендация уже неактуальна.
Не стоит забывать и об информативном руководстве для пользователя, особенно если программа будет распространяться через Интернет. Лучше всего такое руководство оформить в отдельном текстовом файле или, если оно имеет большой объем, в виде набора связанных html-документов.
Полезные советы
· Настройки программы можно сохранять в системном реестре Windows. Для этого служит команда " SaveSetting", с помощью которой можно поместить в системный реестр строку или число. Она имеет формат " SaveSetting "Имя приложения","Имя раздела", «Ключ», "Значение"". Имя приложения, имя раздела и ключ — указатели места, в котором сохраняется Значение. Получить значения из реестра можно командой " GetSetting" с синтаксисом " GetSetting "Имя приложения","Имя раздела", «Ключ», "То значение, которое следует вернуть, если такого ключа, как указанный в предыдущем параметре, в реестре нет"", а удалить — командой " DeleteSetting "Имя приложения","Имя раздела", "Ключ"". Например:
Читать дальше