Оператор описания переменных
Основы VBA
Visual Basic For Application (VBA) – это сочетание одного из самых простых языков программирования и всех вычислительных возможностей табличного процессора Excel.
С помощью VBA можно легко и быстро создавать разнообразные приложения, даже не являясь специалистом в области программирования. VBA содержит графическую среду, позволяющую наглядно конструировать экранные формы и управляющие элементы.
В результате своей эволюции Visual Basic превратился в объектно-ориентированный язык программирования.
Объекты – это естественные детали VBA-ландшафта. Посредством объектов можно получить доступ к функциональным возможностям VBA-приложения.
С практической точки зрения объект – это просто именованный элемент, имеющий:
· свойства, то есть установки, которые можно проверить или изменить;
· методы, то есть действия, которые объект может выполнить, если программа попросит об этом;
· события, то есть возможные для объекта ситуации, на которые он может ответить заранее определенными действиями.
Прежде чем программировать на VBA, следует запустить табличный процессор Excel. Редактор Visual Basic является командным центром для работы в VBA. Вызов редактора Visual Basic осуществляется при помощи команды Сервис – Макрос – Редактор Visual Basicглавного меню Excel.
Для написания программы необходимо создать модуль VBA и открыть окно его программного кода при помощи команды Вставка – Модуль.
В результате этих действий на экране появится окно редактора Visual Basic (рис. 1).
В окне программного кода печатается составленная программа, а затем запускается при помощи кнопки Запуск макроса или команды меню Запуск – Запуск программы. Также выполнить программу можно, нажав клавишу [F5].
При составлении программ приходится сталкиваться с такими понятиями, как оператор, процедура, модуль.
Оператор – это наименьшая способная выполняться единица VBA-кода. Оператор может объявлять или определять переменную, устанавливать параметр компилятора VBA или выполнять какое-либо действие в программе. У допустимого оператора много сходства с законченным предложением – оператор должен содержать правильный набор “частей речи”, иначе это не оператор вообще.
Процедура – это наименьшая единица программного кода, на которую можно ссылаться по имени. Это также наименьшая единица программного кода, которая может выполняться независимо. VBA распознает два главных типа процедур: Sub и Function. Любая процедура содержит один или более операторов, помещенных между двумя специальными операторами: объявлением процедуры в начале и оператором завершения процедуры в конце (End Sub или End Function).
Модуль – это именованная единица, состоящая из одной или нескольких процедур, а также объявлений, относящихся ко всем процедурам в модуле.
В VBA имеется два типа модулей. Чаще всего используется стандартный модуль, который содержит программный код, предназначенный непосредственно для выполнения. Другим типом модуля является модуль класса, в котором определяются пользовательские объекты с их свойствами и методами.
Рис. 1. Окно редактора Visual Basic
Алфавит языка VBA
Для записи операторов, функций, имен, арифметических выражений используются:
· все прописные и строчные буквы латинского алфавита;
· все прописные и строчные буквы русского алфавита;
· арабские цифры;
· специальные знаки
! & ‘ $ ? , . { } ( ) [ ] = - + _ ^ % / ~ < > : ;.
Имя переменной
Имена переменных выбираются по следующим правилам:
· имена должны начинаться с буквы, но не с цифры;
· в имени допускается знак подчеркивания, все остальные знаки запрещены;
· не допускается, чтобы имена имели пробелы;
· длина имени не должна превышать 255 символов;
· имя не должно совпадать ни с каким ключевым словом, функцией или оператором VBA;
· все процедуры и модули должны иметь разные имена.
Примеры допустимых и недопустимых имен переменных приведены в табл. 1.
Таблица 1
Примеры имен переменных
Допустимые имена | Недопустимые имена |
A | Имя более 255 символов |
Go4Ln | 1p |
SUMMA | P 1 |
P1 | W? |
S_1 | Sub |
В VBA прописные и строчные буквы не различаются, но введенные прописные буквы сохраняются.
Объявление переменных
Каждую переменную перед использованием следует объявить. Для объявления переменных используется оператор Dim.
Dim Имя переменной As Тип
Если в разделе объявлений модуля поместить оператор Option Explicit, то при попытке использования предварительно не объявленной переменной VBA будет сообщать об ошибке.
После такого своевременного предупреждения можно добавить необходимое объявление переменной в соответствующем месте программы.
VBA предлагает целый ряд типов данных для переменных, включая удобные типы Date (Дата) и Currency (Денежный).
Основные типы данных в VBA рассмотрены в табл. 2.
Таблица 2
Типы данных VBA
Тип данных | Содержимое переменной | Диапазон допустимых значений |
Boolean | Логический тип данных | Истина (-1) или Ложь (0) |
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 |
Currency | Большое число, для которого выделено 19 позиций, включая 4 позиции после запятой | От –922337203685477,5808 до 922337203685477,5807 |
Object | Объект VBA | Ссылка на любой объект |
String (переменной длины) | Последовательность переменной длины, состоящая из символов | От 0 до 2000000000 символов |
String (фиксирован-ной длины) | Последовательность заданной длины, состоящая из символов | От 0 до 65400 символов |
Variant | Любое из допустимых значе-ний | Зависит от типа данных, содержа-щихся в переменной, в соответ-ствии с вышеприведенными описа-ниями |
Пользователь-ский Type | Группа переменных, исполь-зуемых вместе как единое целое |
Оператор описания переменных
Прежде чем использовать переменные, их следует описать, то есть указать их типы. Для этого в VBA используется оператор описания переменных Dim, который описывает переменные и выделяет для них память, причем описывать нужно каждую переменную отдельно. Напомним, что оператор описания переменных выглядит следующим образом:
DimИмя переменнойAsТип
Пример