Структура программ на VBA
Программы на VBA хранятся в проектах. Проект содержит модули различных типов, а модули включают различные процедуры.
Проект может содержать несколько модулей. Имеется три типа модулей:
- — стандартные модули — это модули, в которых можно описать доступные во всем проекте процедуры;
- — модули класса содержат описание объекта, который является членом класса. Процедуры, написанные в модуле класса, используются только в этом модуле. Среди модулей класса выделяют модули форм и отчетов, которые связаны с конкретной формой или отчетом. и Модули форм и отчетов часто содержит процедуры обработки событий, которые срабатывают в ответ на событие в форме или отчете. Процедуры обработки событий используются для управления поведением форм и отчетов и их реакцией на действия пользователя типа щелчка мыши на кнопке.
Модули содержат описания и процедуры — наборы описаний и инструкций, сгруппированных для выполнения. Существует три типа процедур:
- — процедура Sub — набор команд, с помощью которого можно решить определенную задачу. При ее запуске выполняются команды процедуры, а затем управление передается в приложение пакета MS Office или процедуру, которая вызвала данную процедуру.
- — процедура Function (функция) также представляет собой набор команд, который решает определенную задачу. Различие заключается в том, что такие процедуры обязательно возвращают значение, тип которого можно описать при создании функции.
- — процедура Property используется для ссылки на свойство объекта. Данный тип процедур применяется для установки или получения значения пользовательских свойств форм и модулей.
Для создания модуля в любом приложении MS Office необходимо выбрать команду меню СервисМакросРедактор Viual Basic. В окне «Проект» необходимо щелкнуть правой кнопкой мыши на любом элементе либо в окне редактора выбрать команду меню Вставка, а далее тип модуля. При выборе формы (Userform) для перехода к ее модулю используется команда ВидПрограмма или кнопка «Программа» в окне «Проект» .
Самое начало модуля называется общей областью, в которой располагаются общие описания, например, типа данных, используемого по умолчанию (DefТип), инструкция Option Explicit, требующая явного описания всех используемых в модуле переменных, а также описания общих (глобальных) для всех модулей и для данного модуля переменных.