Переменные

Переменные, константы, типы данных

Компоненты языка

Основы синтаксиса

Синтаксис и программные конструкции 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 - специальном файле, который необходимо добавить в состав проекта.