Встроенные типы данных
VBA использует 11 встроенных типов данных (табл. 19.4).
Boolean использует 2 байта, или 16 бит, памяти для хранения логических данных; имеет два возможных значения: True и False.
Integer использует 2 байта памяти для хранения целых чисел, в том числе 1 бит для хранения знака числа, 15 бит – для числа.
Long использует 4 байта, или 32 бита, памяти для хранения целого числа двойной точности, в том числе 1 бит – для хранения знака числа, 31 бит – для числа.
Single использует 4 байта для раздельного хранения мантиссы (цифровая часть числа – максимум 7 знаков) и порядка (расположение десятичной точки).
Double использует 8 байтов для раздельного хранения мантиссы (максимум 15 знаков) и порядка.
Currency использует 8 байтов, десятичная точка всегда располагается между 4 и 5 цифрами справа, обеспечивает автоматическое округление результатов вычислений.
Date использует 8 байтов и предназначен для хранения дат и времени. Даты записываются в виде целых чисел дней, а время – как дробная часть дня.
String использует 1 байт для хранения 1 символа плюс 1 байт для отметки конца строки. Символы хранятся в виде кодов ANSI.
Object использует 4 байта памяти для ссылки на любой объект Visual Basic.
Array определяет список данных любого типа и любой размерности.
Variant используется всегда, когда явно не указан какой-либо другой тип; может соответствовать любому другому разрешенному типу данных.
Таблица 19.4. Встроенные типы данных VBA
Переменные
Переменнойназывается поименованная область в памяти компьютера во время выполнения программы.
Переменная требует явного объявления своего имени, которое образуют алфавитно-цифровые символы и специальные знаки. Имя всегда начинается с буквы и представляет собой непрерывную последовательность символов, но не более 255 и не содержит специальных символов.
Пример 19.11.
Разрешенное имя переменной | Неразрешенное имя переменной | Комментарий |
ПРИмер; приМЕР; EXAMPLE; example | Нет различия прописных и строчных букв, кириллицы и латиницы в написании имен | |
Тарифная_ставка_1_разряда; Tax_off_l_class | Для улучшения семантики переменные могут состоять из отдельных слов, соединенных знаком _ | |
Тарифная ставка $; #room; Class&subclass | Нельзя использовать пробелы в имени переменной, а также специальные символы типа: #$%&! |
Программа на языке VBA имеет модульную структуру – главный модуль, в составе которого вложенные модули, содержащие одну или более вложенных процедур.
Каждая переменная имеет определенный тип значений и сферу действия, в противном случае ей приписывается тип Variant. На рис. 19.21 показана сфера действия переменных.
Рис. 19.21.Сфера действия переменных в программе на языке VBA
Переменные, объявленные только в процедуре, действуют в пределах процедуры. Объявление переменной на уровне модуля делает ее доступной для всех процедур модуля. При этом допускается переопределение имени переменной во вложенных процедурах. Для использования переменной во всех вложенных процедурах и модулях она объявляется глобальной на уровне внешнего модуля (например, переменная Var0 доступна всем вложенным модулям и их процедурам).
Пример 19.12.Переменные var4, var5 используются только в самих процедурах. Переменная var2 объявлена в процедурах 1 и 2. Это соответствует двум различным переменным с одинаковым именем и своей сферой действия (они имеют разные значения и/или типы данных, независимы друг от друга).
Переменные на уровне модуля, var1 – в модуле 1 и var3 – в модуле 2, используются во всех вложенных в модуль процедурах. Переменная var1 предопределена в процедуре 1, но сохраняет свое значение в процедуре 2; переменная var3 предопределена в процедуре 3.
Переменные в модуле объявляются с помощью операторов различных типов:
локальные переменные
Dim <var> As <type>, <var> As <type>, <var> As <type>, ....
глобальные переменные
Public <var> As <type>, <var> As <type>, <var> As <type>, ....
где <var> – имя переменной;
<type> – встроенный тип данных переменной.
Массивы переменных
Массивы переменных имеют произвольную размерность – одномерные, двухмерные, трехмерные и т.п. объявляются следующими операторами:
локальный массив
Dim <Arr> (размерность) As <type>
глобальный массив
Public <Arr> (размерность) As <type>
где <Arr> – имя массива,
(размерность) – размерность массива.
Пример 19.13.
Дата добавления: 2021-12-14; просмотров: 411;