Другое дело, если вы работаете с базой данных Access напрямую, используя команды меню и кнопки панелей инструментов. В этом случае для создания комбинаций клавиш, вызывающих VBA-программы, вам придется назначать эти комбинации клавиш специальным макросам Access. (Напомню, что макросы Access не являются процедурами VBA.) В Access нет средства записи макросов, поэтому вам придется строить макросы вручную в соответствии со следующими инструкциями.
1. В окне базы данных выберите кнопку Макросы, а затем щелкните на кнопке Создать.
Появится диалоговое окно Макрос (рис. 4.11).
2. В столбце Макрокоманда выберите Запуск Программы, как показано на рис. 4.11.
3. Выберите Вид=Имена макросов, чтобы в окне появился новый столбец Имя макроса.
4 Напечатайте в столбце Имя макроса комбинацию клавиш, которую вы хотите назначить своей программе.
Используйте символ ́ для обозначения клавшим Ctrl. а символ + - для обозначения Shift. Буквы и числа можно печатать как обычно, а вот функциональные клавиши нужно заключить в фигурные скобки. Например, для комбинации клавиш Ctrb-k нужно напечатать ́ k, а для Shift + F8 • F8 ).
5. Щелкните в текстовом поле Имя функции и напечатайте имя той процедуры VBA, которую должен вызывать макрос.
Это должна быть процедура типа Function.
6. Закройте окно Макрос, щелкнув на кнопке в правом верхнем углу окна. Когда Access попросит дать макросу имя, напечатайте AutoKeys.
Рис. 4. 1 /. Такое окно используется для создания макросов в Access
Макросы для мыши Visio
Visio предлагает совершенно другом способ вызова VBA-программ - это двойной щелчок на форме, которую вы связали со своим программным кодом. Вот инструкции для назначения форме ответа на двойной щелчок кнопкой мыши.
1. Щелкните на форме, чтобы выделить ее.
2. Выберите Format=Behavior.
3. Перейдите на вкладку Double-Click.
4. Выберите VBA-процедуру своей мечты из списка Run Macro.
5. Щелкните на кнопке ОК.
Теперь после двойного щелчка кнопкой мыши на этой форме всегда будет выполняться ваша VBA-программа.
Автоматический запуск VBA-программ
Предположим, что у вас есть VBA-программа, которую вы любите настолько, что хотели бы видеть ее в действии самой первой каждый раз, когда запускаете свое приложение. А если вы любите свою программу так сильно, что и такую, казалось бы, ничтожную задержку, как щелчок на кнопке, наверное, нелегко пережить.
К счастью для вас, многие VBA-приложения предусматривают возможность автоматического выполнения программного кода VBA при запуске и закрытии приложения, при открытии и закрытии документа, а также при наступлении некоторых других событий.
В табл. 4.1-4.3 представлены приемы, которые можно использовать в самых популярных VBA-приложениях для автоматического запуска VBA-программ.
Таблица 4.1. Автоматическое выполнение VBA-программ при запуске приложения с помощью ярлыка
Приложение |
Команда, добавляемая в поле Файл на вкладке Ярлык |
Комментарий |
Microsoft Word |
/mVBA |
Вместо VBA напечатайте имя своей VBA программы |
Microsoft Access |
/xmakpoc |
Выполняет все макросы из указанного вами списка. Чтобы выполнить процедуру VBA, макрос Access должен включать макрокоманду ЗапускПрограммы |
Таблица 4.2. Автоматическое выполнение VBA-программ в Word с помощью назначения программам специальных имен
Имя VBA-программы |
Условие автоматического выполнения программы |
AutoExec AutoNew |
При запуске Word При создании каждого нового документа |
AutoOpen AutoClose AutoExit |
При открытии любого существующего документа При закрытии документа При выходе из Word |
Замечание. Макрос AutoExec должен храниться в шаблоне Обычный ( normal.dot ).
Таблица 4.3. Выполнение VBA-программ с помощью процедур обработки событий (создание процедур обработки событий обсуждается в главе 14)
Приложение |
Условие автоматического вызова процедуры |
Используйте объект |
Создайте процедуру обработки события |
Visio |
При создании нового документа |
Document |
Document Opened |
Visio |
При сохранении документа под другим именем |
Document |
Document SavedAs |
Microsoft Word |
При открытии документа |
Document |
Open |
Microsoft Word |
При создании нового документа |
Document |
New |
Microsoft Word |
При закрытии документа |
Document |
Close |
Microsoft Excel |
При открытии любой рабочей книги |
Application |
WorkbookOpen |
Microsoft Excel |
При открытии конкретной рабочей книги |
Workbook |
Open |
Microsoft Excel |
При создании новой рабочей книги |
Workbook |
NewSheet |
Замечание. Совсем немногие из длинного списка событий Visio, Word и Excel относятся ко всему документу.
Работа с ярлыками Windows
Некоторые приложения позволяют выполнить программный код VBA с помощью добавления команд к имени приложения при его запуске (см. табл. 4.1). Если вы не хотите утруждать себя набиранием этих команд в командной строке DOS, модифицируйте или создайте подходящий ярлык Windows, который будет вызывать это приложение.
Пиктограммы в меню Пуск Windows представляют ярлыки. Чтобы модифицировать их, щелкните правой кнопкой мыши на кнопке Пуск, из появившегося небольшого меню выберите пункт Открыть, а затем откройте папку Программы и подходящие вложенные в нее папки, чтобы увидеть ярлык вашего приложения. Теперь щелкните правой кнопкой мыши на ярлыке и выберите из появившегося меню пункт Свойства, чтобы открыть диалоговое окно Свойства.
В этом диалоговом окне перейдите на вкладку Ярлыки. В текстовом поле Файл после имени самого приложения напечатайте нужную команду. Например, чтобы при запуске Word выполнялась процедура VBA, текст в поле Файл должен выглядеть примерно так:
C:\Microsoft Office\WINWORD.EXE /mAutomaticNovel
Чтобы создать новый ярлык, щелкните правой кнопкой мыши в любом месте рабочего стола, в окне Мой компьютер или окне Проводник. В появившемся контекстном меню выберите Создать=Ярлык и позвольте Windows провести вас через оставшиеся шаги. После этого появившийся ярлык вы сможете изменить в соответствии с инструкциями, приведенными в этой врезке выше.
Глава 5. Редактор Visual Basic к вашим услугам.
В этой главе ...
~ Поиск команд в системе меню редактора Visual Basic
~ Отображение, перемещение и настройка панелей инструментов
~ Понимание и использование закрепления панелей инструментов и окон