Основы VBA
VisualBasicForApplication (VBA) – это сочетание одного из самых простых языков программирования и всех вычислительных возможностей табличного процессора Excel.
С помощью VBA можно легко и быстро создавать разнообразные приложения, даже не являясь специалистом в области программирования. VBA содержит графическую среду, позволяющую наглядно конструировать экранные формы и управляющие элементы.
В результате своей эволюции VisualBasic превратился в объектно-ориентированный язык программирования.
Объекты – это естественные детали VBA-ландшафта. Посредством объектов можно получить доступ к функциональным возможностям VBA-приложения.
С практической точки зрения объект – это просто именованный элемент, имеющий:
· свойства, то есть установки, которые можно проверить или изменить;
· методы, то есть действия, которые объект может выполнить, если программа попросит об этом;
· события, то есть возможные для объекта ситуации, на которые он может ответить заранее определенными действиями.
|
|
Прежде чем программировать на VBA, следует запустить табличный процессор Excel. Редактор VisualBasic является командным центром для работы в VBA. Вызов редактора VisualBasic осуществляется при помощи команды Вид-Макросы-Макросы главного меню Excel (для MicrosoftOfficeExcel).
|
В результате этих действий на экране появится окно редактора VisualBasic (рис. 1).
В окне программного кода печатается составленная программа, а затем запускается при помощи кнопки Запуск макроса или команды меню Run. Также выполнить программу можно, нажав клавишу [F5].
При составлении программ приходится сталкиваться с такими понятиями, как оператор, процедура, модуль.
Оператор – это наименьшая способная выполняться единица VBA-кода. Оператор может объявлять или определять переменную, устанавливать параметр компилятора VBA или выполнять какое-либо действие в программе. У допустимого оператора много сходства с законченным предложением – оператор должен содержать правильный набор “частей речи”, иначе это не оператор вообще.
Процедура – это наименьшая единица программного кода, на которую можно ссылаться по имени. Это также наименьшая единица программного кода, которая может выполняться независимо. VBA распознает два главных типа процедур: Sub и Function. Любая процедура содержит один или более операторов, помещенных между двумя специальными операторами: объявлением процедуры в начале и оператором завершения процедуры в конце (EndSub или EndFunction).
|
|
Модуль – это именованная единица, состоящая из одной или нескольких процедур, а также объявлений, относящихся ко всем процедурам в модуле.
В VBA имеется два типа модулей. Чаще всего используется стандартный модуль, который содержит программный код, предназначенный непосредственно для выполнения. Другим типом модуля является модуль класса, в котором определяются пользовательские объекты с их свойствами и методами.
Рис. 1. Окно редактора VisualBasic
Алфавит языка VBA
Для записи операторов, функций, имен, арифметических выражений используются:
· все прописные и строчные буквы латинского алфавита;
· все прописные и строчные буквы русского алфавита;
· арабские цифры;
· специальные знаки
! & ‘ $?,. { } () [ ] = - + _ ^ % / ~ <>:;.
Имя переменной
Имена переменных выбираются по следующим правилам:
· имена должны начинаться с буквы, но не с цифры;
· в имени допускается знак подчеркивания, все остальные знаки запрещены;
· не допускается, чтобы имена имели пробелы;
· длина имени не должна превышать 255 символов;
· имя не должно совпадать ни с каким ключевым словом, функцией или оператором VBA;
· все процедуры и модули должны иметь разные имена.
Примеры допустимых и недопустимых имен переменных приведены в табл. 1.
Таблица 1
Примеры имен переменных
Допустимые имена | Недопустимые имена |
A | Имя более 255 символов |
Go4Ln | 1p |
SUMMA | P 1 |
P1 | W? |
S_1 | Sub |
В VBA прописные и строчные буквы не различаются, но введенные прописные буквы сохраняются.
Объявление переменных
Каждую переменную перед использованием следует объявить. Для объявления переменных используется оператор Dim.
Dim Имя переменной As Тип
Если в разделе объявлений модуля поместить оператор OptionExplicit, то при попытке использования предварительно не объявленной переменной VBA будет сообщать об ошибке.
После такого своевременного предупреждения можно добавить необходимое объявление переменной в соответствующем месте программы.
VBA предлагает целый ряд типов данных для переменных, включая удобные типы Date (Дата) и Currency (Денежный).
Основные типы данных в VBA рассмотрены в табл. 2.
Таблица 2
Типы данных VBA
Тип данных | Содержимое переменной | Диапазон допустимых значений |
Byte | Достаточно малое целое число | От 0 до 255 |
Integer | Не слишком большое целое число | От –32768 до 32767 |
Long | Большое целое число | От –2147483648 до 2147483647 |
Single | Значение одинарной точности с плавающей запятой | От –3,402823Е38 до –1,401298Е-45 для отрицательных значений и от 1,401298Е-45 до 3,402823Е38 для положительных значений |
Double | Значение двойной точности с плавающей запятой | От –1,79769313486231Е308 до 1,79769313486232Е308 |