В этом часе вы уже познакомились с двумя способами автоматического выполнения процедур (при открытии или закрытии рабочих книг и в ответ на наступление определенных событий). Но предположим, что необходима автоматическая загрузка определенных процедур при открытии самой программы Excel. Перечисленные выше способы автоматического выполнения процедур в этом случае не подходят. Выход есть и в данной ситуации: надо создать необходимые процедуры и сохранить рабочую книгу их содержащую, как надстройку. Рабочая книга-надстройка содержит информацию, созданную пользователем, например специальную структуру и оформление рабочего листа или процедуры. Книгу-надстройку нельзя отрыть (как обычную рабочую книгу) и изменить, но она может содержать средства настройки, которыми пользователь может управлять. Обычно надстройки содержат следующее:
функции, созданные пользователем;
пользовательские диалоговые окна;
пользовательские меню;
пользовательские панели инструментов.
В следующем примере мы создадим функцию, вычисляющую комиссионные проценты, и сохраним рабочую книгу, содержащую эту функцию, как надстройку. Затем применим созданную функцию.
Откройте новую рабочую книгу и создайте функцию Комиссионные.
Введите код этой функции
Function Комиссионные(х As Variant)
Комиссионные = х * 0.3
End Function
Сохраните рабочую книгу под именем МояФункция.
Выполните команду Файл > Сохранить как. В диалоговом окне Сохранение документа в раскрывающемся списке Тип файла выберите Надстройка Microsoft Excel. Автоматически откроется папка Addins. Щелкните на кнопке Сохранить для создания новой надстройки.
Закройте все открытые рабочие книги.
Откройте новую рабочую книгу.
Выполните команду Сервис > Надстройки, откроется диалоговое окно Надстройки.
Щелкните на кнопке Обзор. В открывшемся диалоговом окне Обзор, отображающем содержимое папки Addins, выберите файл МояФункция и щелкните на кнопке ОК. Щелкните на кнопке ОК в диалоговом окне Надстройки.
Если вы сейчас откроете меню Окно, то увидите, что открыта только одна(текущая) рабочая книга.
В ячейку А1 введите число 100. В ячейку В1 введите формулу =комиссионные(А1) и нажмите клавишу <Enter>. Комиссионные будут вычислены.
Надеюсь, этот маленький пример ясно показал основную идею создания и использования надстроек.
Резюме
В этом часе вы получили тот уровень знаний о VBA, который необходим для автоматизации выполнения процедур. Вы узнали, что процедура Auto_Open автоматически выполняется при открытии рабочей книги, a Auto_Close - при закрытии. Вы также познакомились с процедурами, выполняемыми при наступлении определенных событий. Наконец, вы узнали, что такое надстройки Excel, как их создавать и использовать.