Сводка типов данных
Тип данных — это характеристика переменной, определяющая тип содержащихся в ней данных. К типам данных относятся типы, указанные в таблице ниже, а также пользовательские типы и определенные типы объектов.
Набор встроенных типов данных
В следующей таблице показываются поддерживаемые типы данных, включая размеры хранилищ и диапазоны.
Тип данных | Размер хранилища | Диапазон |
---|---|---|
Boolean | 2 байта | True или False |
Byte | 1 байт | от 0 до 255 |
Collection | Неизвестно | Неизвестно |
Currency (масштабируемое целое число) | 8 байт | от –922 337 203 685 477,5808 до 922 337 203 685 477,5807 |
Date | 8 байт | -657 434 (1 января 100 г.), до 2 958 465 (31 декабря 9999 г.) |
Decimal | 14 байт | +/–79 228 162 514 264 337 593 543 950 335 без десятичной запятой +/–7,9228162514264337593543950335 с 28 разрядами справа от десятичной запятой Наименьшее ненулевое число равно +/–0,0000000000000000000000000001 |
Dictionary | Неизвестно | Неизвестно |
Double (число с плавающей запятой двойной точности) | 8 байт | от –1,79769313486231E308 до –4,94065645841247E-324 для отрицательных значений от 4,94065645841247E-324 до 1,79769313486232E308 для положительных значений |
Integer | 2 байта | от –32 768 до 32 767 |
Long (целое число Long) | 4 байта | от –2 147 483 648 до 2 147 483 647 |
LongLong (целое число LongLong) | 8 байт | от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 Действительно только для 64-разрядных платформ. |
LongPtr (целое число Long в 32-разрядных системах, целое число LongLong в 64-разрядных системах) | 4 байта в 32-разрядных системах 8 байт в 64-разрядных системах |
от –2 147 483 648 до 2 147 483 647 в 32-разрядных системах от –9 223 372 036 854 775 808 до 9 223 372 036 854 775 807 в 64-разрядных системах |
Object | 4 байта | Любая ссылка на Object |
Single (число с плавающей запятой одинарной точности) | 4 байта | от –3,402823E38 до –1,401298E-45 для отрицательных значений от 1,401298E-45 до 3,402823E38 для положительных значений |
String (переменная длина) | 10 байтов + длина строки | от 0 до приблизительно 2 миллиардов |
String (фиксированная длина) | Длина строки | от 1 до приблизительно 65 400 |
Variant (с числами) | 16 байт | Любое числовое значение до диапазона типа Double |
Variant (с символами) | 22 байта + длина строки (24 байтов в 64-разрядных системах) | Тот же диапазон как для типа String переменной длины |
Определяется пользователем (используя Type) | Число, необходимое для элементов | Диапазон каждого элемента совпадает с диапазоном его типа данных. |
Тип Variant, содержащий массив, требует на 12 байт больше, чем сам массив.
Примечание.
Для массивов данных любого типа требуются 20 байтов памяти плюс 4 байта на каждую размерность массива, плюс количество байтов, занимаемых самими данными. Память, занимаемая данными, может быть вычислена путем умножения количества элементов данных на размер каждого элемента.
Например, данные в одномерном массиве, состоящем из 4 элементов данных Integer размером 2 байта каждый занимают 8 байтов. 8 байтов, необходимых для данных, плюс 24 байта служебных данных составляют 32 байта полной памяти, требуемой для массива. На 64-разрядных платформах массив SAFEARRAY занимает 24 бита (плюс 4 байта на оператор Dim). Элемент pvData является 8-байтным указателем, и он должен находиться в границах 8 байтов.
Примечание.
Тип LongPtr не является настоящим типом данных, так как он преобразуется в тип Long в 32-разрядных средах или в тип LongLong в 64-разрядных средах. Тип LongPtr должен использоваться для представления указателя и обработки значений в операторах Declare и позволяет писать переносимый код, который может выполняться как в 32-разрядных, так и в 64-разрядных средах.
Примечание.
Для преобразования одного типа строковых данных в другой используется функция StrConv.
Символы типа идентификатора
Предоставляется набор символов типа идентификатора , которые можно использовать в объявлении для указания типа данных переменной или константы. В следующей таблице показаны доступные символы типа идентификатора с примерами использования.
Символ типа идентификатора | Тип данных | Пример |
---|---|---|
% |
Integer | Dim L% |
& |
Long | Dim M& |
^ |
LongLong (очень длинное целое) | Dim N^ |
@ |
Валюта | Const W@ = 37.5 |
! |
Одинарное | Dim Q! |
# |
Двойное с плавающей точкой | Dim X# |
$ |
String | Dim V$ = "Secret" |
Символы типов идентификаторов не существуют для Boolean
типов данных , Byte
, Date
, Decimal
Double
, LongPtr
, Object
, или Variant
для любых составных типов данных, таких как массивы, коллекции, словари, структуры или определяемые пользователем типы.
В некоторых случаях можно добавить $
символ в функцию Visual Basic, например Left$
вместо Left
, чтобы получить возвращаемое значение типа String
.
Во всех случаях символ типа идентификатора должен немедленно следовать за именем идентификатора.
Преобразование между типами данных
В разделе Функции преобразования типов приведены примеры использования следующих функций для приведения выражения к определенному типу данных: CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CLng, CLngLng, CLngPtr, CSng, CStr и CVar.
Ниже приведены страницы соответствующих функций: CVErr, Fix и Int.
Примечание.
Функция CLngLng действительна только для 64-разрядных платформ.
Проверка типов данных
Чтобы проверить типы данных, ознакомьтесь с приведенными ниже функциями.
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.