Язык VBA
Язык VBA достаточно простой. Ниже приводится краткий курс языка VBA. Аббревиатура VBA означает Visual Basic for Applications, т.е. Visual Basic для приложений.
Объявление переменных в VBA
Пример объявления локальной переменной в VBA:
здесь объявлена локальная, т.е. видимая в пределах функции, переменная типа Integer.
Пример объявления глобальной переменной в VBA:
такая перемнная доступна из своего и других модулей.
Пример объявления переменной, видимой только в своём модуле:
Пример объявления статической переменной в VBA:
Статические переменные в VBA можно объявлять только на уровне процедуры. Значение статической переменной в этом примере равно нулю, т.е. при объявлении числовая переменная инициализируется нулем.
Особенность объявления переменных в VBA состоит в том, что переменную можно и не объявлять, но использовать. Тип таких переменных – Variant. Но рекомендуется объявлять переменные, указывать их тип, а не использовать тип Variant.
Константы в VBA
Константы в VBA объявляют с помощью Const:
Константам значение присваивается при их объявлении.
Массивы в VBA
Пример объявления массива в VBA:
объявлен массив типа Integer, индексы элементов изменяются от нуля до пяти.
Многомерные массивы в VBA
Пример двумерного массива в VBA:
Динамические массивы в VBA
Динамические массивы могут изменять свой размер. Объявление динамического массива:
здесь размер массива не указан. Но перед использованием такого массива следует объявить его размер:
Можно и изменить его размер после предыдущего определения:
Процедуры в VBA
Пример объявления процедуры в VBA:
lngSqr = intA * intA
End Sub
В этом примере объявлена процедура, видимая из всех модулей, на это указывает слово Public, принимающая два параметра: intA по значению, на это указывает ключевое слово ByVal, и параметр lngSqr по ссылке, на это указывает ключевое слово ByRef. Ключевое слово Sub говорит, что объявлена процедура.
По умолчанию аргументы передаются в процедуры по ссылке.
Функции в VBA
Функции отличаются от процедур тем, что возвращают значение. Пример функции в VBA:
lngFunc = intA * intA
End Sub
Для задания функции используем ключевое слово Function, после списка аргументов указываем тип возвращаемого значения. Строка
возвращает значение из данной функции, слева – имя функции, в данном случае оно играет роль return.
Первая программа на VBA
Откройте Excel, в строке меню окна Excel выберете Сервис — > Макрос — > Редактор Visual Basic. Откроется окно редактора, оно называется Microsoft Visual Basic. В окне Project – VBA Project кликаем дважды по Лист1. Вводим код:
MsgBox («It is my first VBA program.»)
End Sub
Далее Debug — > Compile VBA Project. Если нет ошибок, то запускаем нашу программу: Run — > Run Sub/UserForm.
Видим такую картину:
Если у вас так получилось, то это значит, что самое трудное позади и очень скоро вы освоите VBA окончательно.
Использование функций в VBA
Сделаем программу с использованием функций. Напомню, что функция – это процедура, которая возвращает значение. Пусть наша программа возводит целое число в квадрат. Код на VBA:
lngSqr = intVal * intVal
End Sub
Public Sub calculation()
lngSqr = intVal * intVal
Dim intVar As Integer
Dim lngResult As Long
intVar = 5
lngResult = lngSqr(intVar)
MsgBox («The result is » & lngResult)
End Sub
Получаем:
Это результат работы.