Переменные, константы и типы данных
Приведем теперь краткую сводку используемых типов данных VBA (табл. 13.1).
Таблица 13.1. Типы данных VBA.
Тип данных | Описание |
---|---|
Array | Массив переменных, для ссылки на конкретный элемент массива используется индекс. |
Boolean | Требуемая память: зависит от размеров массива Принимает одно из двух логических значений: True или False. Требуемая память: 2 байта |
Byte | Число без знака от 0 до 255 Требуемая память: как нетрудно догадаться, 1 байт |
Currency | Используется для произведения денежных вычислений с фиксированным количеством знаков после десятичной запятой, в тех случаях, когда важно избежать возможных ошибок округления. Диапазон возможных значений: от – 922 337 203 685 477.5808 до 922 337 203 685 477.5807. Требуемая память: 8 байтов. Символ определения типа по умолчанию: @ |
Date | Используется для хранения дат. Диапазон возможных значений: от 1 января 0100 г. до 31 декабря 9999 г. Требуемая память: 8 байтов |
Double | Числовые значения с плавающей точкой двойной точности. Диапазон возможных значений для отрицательных чисел: от – 1.797693 13486232Е308 до – 4.94065645841 247Е-324. Диапазон возможных значений для положительных чисел: от 4.94065645841 247Е-324 до 1, 7976931 3486232Е308. Требуемая память: 8 байтов. Символ определения типа по умолчанию: # |
Integer | Короткие целые числовые значения. Диапазон возможных значений: от – 32 768 до 32 767. Требуемая память: 2 байта. Символ определения типа по умолчанию: % |
Long | Длинные целые числовые значения. Диапазон возможных значений: от – 2 147 483 648 до 2 147 483 647. Требуемая память: 4 байта. Символ определения типа по умолчанию: & |
Object | Используется только для хранения ссылок на объекты. Требуемая память: 4 байта |
Single | Числовые значения с плавающей точкой обычной точности. Диапазон возможных значений для отрицательных чисел: от – 3.402823Е38 до – 1.401 298Е-45. Диапазон возможных значений для положительных чисел: от 1.401 298Е-45 до 3.402823Е38. Требуемая память: 4 байта. Символ определения типа по умолчанию:! |
String | Используется для хранения строковых значений. Длина строки: от 0 до 64 Кбайтов. Требуемая память: 1 байт на символ. Символ определения типа по умолчанию: $ |
Variant | Может использоваться для хранения различных типов данных: даты/времени, чисел с плавающей точкой, целых чисел, строк, объектов. Требуемая память: 16 байтов, плюс 1 байт на каждый символ строковых значений. Символ определения типа по умолчанию: отсутствует |
Определяемый пользователем тип | Определяемые пользователем типы данных, назначение и размер выделяемой памяти зависят от определения. Используется для описания структур данных. Позволяет хранить в переменной такого типа множество различных значений разного типа |
При описании переменной указание типа данных может быть опущено. Тип переменной в таком случае определяется последним символом имени переменной: @, #, %, &,! или $ (Currency, Double, Integer, Long, Single или String соответственно). Например, поскольку символ "$" является символом определения типа для строковых данных, то переменная под именем text$ автоматически становится переменной типа "строка символов". В дальнейшем этот специальный символ указания типа данных может быть опущен, однако постоянное присутствие в имени переменной символа определения типа будет напоминать о том, к какому типу данных относится эта переменная, что поможет избежать ошибок использования несовместных типов данных.
Если же последний символ не является ни одним из вышеперечисленных и явное указание типа тоже не используется, в этом случае переменной будет назначен по умолчанию тип данных Variant, который позволяет хранить в ней данные любого типа.
Учтите также, что нельзя использовать в одной и той же процедуре имена переменных, отличающиеся друг от друга только специальным символом определения типа в конце переменной. Например, не допускается одновременное использование переменных var$ и var%. Не допускается и явное объявление переменной, уже содержащей символ определения типа в конце имени, с помощью описателя As <типПеременной> (даже если такое определение не противоречит обычному применению символа определения типа). Так, например, вы получите сообщение об ошибке, попытавшись ввести любое из следующих определений:
Dim
var1%
As
String
Dim
var2%
As
Integer