Имя проекта может содержать как русские, так и английские символы, но не должно иметь пробелов — при попытке задания проекту имени с пробелами будет выдано предупреждение (рис. 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 хватит и вышеизложенной информации.
Довольно много полезных приемов работы с панелями инструментов, кнопками на них — создание, копирование, удаление — реализованы в наборе макросов "Saveln" (есть на прилагаемом к книге компакт-диске, а также доступен через Сеть с адреса http://antorlov.chat.ru/savein.htm).
Вполне возможно программно задавать и сочетания клавиш для вызова тех или иных программ, однако делать так ни в коем случае не следует. Не следует по той простой причине, что настройки сочетаний клавиш пользователя, который установит вашу программу, вполне могут совпасть с заданными вами для вашей программы. В результате вполне возможна ситуация, когда пользователь не сумеет вызвать нужную ему команду привычным для него сочетанием клавиш, вместо этой команды будет вызываться ваша программа. Можно заранее предсказать, что такое положение дел у подавляющего большинства людей вызовет массу негативных эмоций и бурю отвращения как к вам, так и к вашему творению. Поэтому оставьте пользователю возможность самостоятельной настройки сочетаний клавиш.
Если в качестве способа вызова макроса выбрана панель инструментов с кнопками, то после окончания работы над ней стоит повторить создание нового документа и вновь скопировать все компоненты программы в новый документ вместе с панелью. Такое преобразование позволит существенно сократить размер файла с программой, так как вследствие ошибки программистов 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, однако эти пути всегда можно поменять на более удобные.