VBA-программирования в среде MS Excel

В настоящее время Microsoft Office является наиболее используемым и полезным программным продуктом. Набор его приложений, включающий текстовый редактор Word, электронные таблицы Excel, систему управления базами данных Access, редактор Web-страниц Front Pages, пакет подготовки презентаций PowerPoint, электронный секретарь Outlook и другие, предназначен для решения очень широкого круга задач - от создания простых документов и отчетов до полной автоматизации документооборота организации с использованием систем управления базами данных и создания сайтов в сети Интернет.

При этом каждый пользователь имеет возможность настроить любое приложение MS Office для оптимального выполнения своих специфических задач, автоматизировать рутинную повторяющуюся работу, а также создать собственные нестандартные процедуры и функции и разработать довольно сложные программы, работающие в интегрированной среде MS Office.

Эти возможности реализуются, как правило, путем создания программ на встроенном объектно - ориентированном языке Visual Basic for Applications (VBA). Важнейшим достоинством VBA является возможность объединять любые приложения Office для решения, практически, любых задач по обработке информации. VBA позволяет работать с MS Office, как с некоторым конструктором: в распоряжении разработчика VBA-приложения большое количество объектов и коллекций.

Основной единицей программного кода на языке VBA является макрос, который представляет собой надлежащим образом оформленную последовательность команд, способных выполнить определенные действия или произвести определенные расчеты. Макросы могут писаться вручную в Редакторе VBA, как обычные процедуры на языке программирования Visual Basic {процедуры пользователя), или в автоматическом режиме с помощью макрорекордера (процедуры макросов). Различают также процедуры обработки событий (подробнее в разделе 9).

Каждый макрос VBA начинается с ключевого слова Sub (от слова Subroutine - процедура), за которым следует имя макроса и пустые круглые скобки. Первую строку кода, содержащую эти данные, называют строкой объявления (declaration) макроса. Заканчивается макрос строкой End Sub.

Макросы VBA сохраняются в специальной части основного файла данных (документа Word, книги Excel и др.), называемой модули (Modules). Каждый модуль может содержать исходный код (source code) нескольких макросов, а документ Office может содержать несколько модулей, которые объединены общим названием проект (Project). В проекте VBA автоматически создает модули для каждого рабочего листа, для всей рабочей книги, а также для каждой пользовательской формы (User Form). По назначению модули бывают двух типов: модули объектов и стандартные. В окне Project отображается реестр модулей и форм.

В дальнейшем, не ограничивая общности, будем излагать основы VBA-программирования в среде MS Excel.

Отметим, что операционная система Windows воспринимает макросы как элементы управления ActiveX и при загрузке приложений MS Office предупреждает, что макросы могут быть вирусоопасными. Чтобы упростить работу с создаваемыми макросами, в учебных целях рекомендуется установить средний уровень безопасности макросов через меню Excel:Сервис | Параметры | Безопасность | Безопасность макросов | Средняя.

Основные операторы и функции VBA

Каждый оператор VBA начинается с новой строки. Если возникла необходимость разместить на одной строке несколько операторов (например, в целях лучшей обозримости кода макроса), то они отделяются друг от друга в этой строке двоеточием.

Перенос длинной строки можно осуществить, добавив в конце строки символы (пробел)+(знак подчеркивания _ ).

Оператор присваивания

<Переменная> = <Выражение>

Заданное или вычисляемое в правой части оператора выражение присваивается переменной левой части, «стирая» ее предыдущее значение. Каждое хранимое значение имеет в компьютере физический адрес памяти, которая в данный момент его содержит, и имя переменной, которая им обладает (ссылается на этот адрес).

Описание типов переменных

Dim <Имя переменной> As <Тип переменной>

Часто используемые типы данных: Integer - целый, Single - вещественный, String - символьный, Boolean - логический.

В VBA имеется универсальный тип данных Variant, который подразумевается по умолчанию.

Условный оператор

If <Условно Then <Действия1> Else <Действия2> End If

Если Условие истинно, то выполняются Действия1, иначе (если Условие ложно) выполняются Действия2.

Замечание. Условные операторы, как и операторы циклов, могут быть вложенными. Вместо вложенных условных операторов можно использовать оператор множественного ветвления Select Case ...

Цикл с параметром

For <Переменная-счетчик> =<Нач. знач> То <Кон. знач.> Step <Прираш.>

<Тело цикла>

Next

Эти циклы используются, когда число повторений известно или может быть вычислено заранее. По умолчанию Приращение=1.

Цикл с предусловием

While <Условие> DoWhile <Условие>

<Тело цикла> или <Тело цикла>

Wend Loop

Тело данного цикла выполняется, пока Условие истинно.

Цикл с постусловием

Do

<Тело цикла>

Loop Until <Условие>

Данный цикл работает до выполнения Условия, пока оно не верно, т.е. здесь истинность Условия означает выход из цикла. Оператор используется в задачах, когда необходимо, чтобы тело цикла хотя бы один раз отработало.

Наши рекомендации