Переменные
Переменные, константы, типы данных
Компоненты языка
Основы синтаксиса
Синтаксис и программные конструкции VBA
Лекция №7
VBA не чувствителен к регистру.
Новый оператор начинается с новой строки.
В любом месте программы может стоять комментарий, который начинается с апострофа «’».
Длинный оператор можно разбить на несколько строк, используя пробел и символ подчеркивания « _ ».
В одной строке можно помещать несколько операторов, разделяя их двоеточием «:».
Символьные значения должны заключаться в двойные кавычки.
Переменные – именованная область памяти, используемая для хранения данных, значения которых можно изменять по ходу выполнения программы. Переменные могут содержать слова, числа, даты или свойства.
Все переменные имеют имя и значение. Имена начинаются с латинской буквы, не должны превышать 255 символов, в них нельзя использовать ключевые слова языка и имена стандартных объектов.
A=2.5
I = I +1 -приращение значения переменной
Здесь знак «=» – это знак присваивания, а не равенства.
Обычно, перед использованием переменную объявляют в операторе Dim - для резервирования места в памяти компьютера (при выполнении программы), объем которого зависит от объявленного типа переменной. Процесс использования переменной походит на заказ столика в ресторане. Вы можете использовать ее сразу, но лучше, позаботиться об этом заранее.
Dim < имя переменной > As < тип переменной >
Приведем некоторые типы переменных:
Тип переменной | Переменная | Объем занимаемого места в памяти |
integer | целые числа от -32 768 до 32767 | 2 байта |
long | Длинное целое | 4 байта |
single | вещественные 1.23456789Е-12 = 1.23456789×10-12 | 4 байта |
double | вещественные двойной точности | 8 байт |
string | символьные значения (буквы) | 4 байта |
variant | любые данные | 8 байт |
boolean | Булевы (true, false) | 2 байта |
Integer – целые числовые значения. Диапазон значений от –32768 до 31767. Требуемая память 2 байта.
Single – числовые значения с плавающей точкой одинарной (обычной) точности. Диапазон значений от 3,402823Е+38 до 1,401298Е-45. Требуемая память 4 байта.
String – символьные (строковые) значения. Диапазон значений от 0 до 65535 символов. Требуемая память 1 байт на символ.
Variant – для хранения любых данных. При использовании этого типа данных, не самым экономным способом расходуется память, и переменные этого типа требуют больше времени на обработку. Требуемая память 16 байт – для чисел и 22 байта + 1 байт на символ – для строк.
Кроме этих типов существуют еще:
Long – длинное целое число.
Double – число плавающей точкой двойной точности (для работы с огромными числами).
Byte (байт) – для хранения 8-бит (1байт) числовой информации со значениями от 0 до 255.
Currence – число с фиксированной точкой.
Boolean – булево число. Оно может принимать 2 значения – False и True. При присваивании переменной типа Boolean любого значения отличного от “0” – переменная примет значение – True и только “0” – значение False.
Date – дата, время. Хранят числа, представляющие даты (с 1 января 100 года до 31 декабря 9999 года) и время суток с 0:00:00 до 23:59:59.
Для того, чтобы избежать неприятностей в случае ошибочной записи имени переменной, необходимо в общей области программного модуля вставить оператор:
Option Explicit (Эксплисит)(Опция «явно»)
Проиллюстрировать, зачем это делается можно на простом примере:
Dim n
n=n+1
MsgBox п
С виду никаких проблем. В окно сообщений должна, выводится единица. На самом деле выводится пустое окно сообщений. Причина – в третьей строке вместо n введена русская п. VBA просто создал новую переменную с типом Variant и вывел ее значение.
Уровни объявления переменных
При описании переменной определяется и область ее программной видимости, т.е. где возможен доступ к ее значению только в данной процедуре, или во всех процедурах данного проекта.
Переменные могут быть:
• локальными;
• модульными;
• глобальными.
Если объявление переменной оператором Dim производится внутри процедуры, то такая переменная является локальной, т.е. переменная будет действовать только внутри данной процедуры и ее значения в других процедурах не будут доступны.
В окне кодов перед списком всех объектов, располагается раздел General, в котором обычно объявляются используемые на форме переменные и их типы. Если объявление сделать в этом разделе, то значения этой переменной будут доступными во всех процедурах в пределах данной формы. Такие переменные называют модульными, т.е. действующими на уровне всего модуля проекта (таким модулем может является лист или форма).
Если же необходимо обеспечить доступ к значениям переменной на всех листах или формах разрабатываемого приложения, то для объявления такой глобальной переменной вместо оператора Dim необходимо использовать оператор Global. Например,
Global m As Single, n As Single
Причем объявления глобальных переменных оператором Global, можно записывать только в программном коде модуля Module - специальном файле, который необходимо добавить в состав проекта.