Сводка типов данных

Тип данных — это характеристика переменной, определяющая тип содержащихся в ней данных. К типам данных относятся типы, указанные в таблице ниже, а также пользовательские типы и определенные типы объектов.

Набор встроенных типов данных

В следующей таблице показываются поддерживаемые типы данных, включая размеры хранилищ и диапазоны.

Тип данных Размер хранилища Диапазон
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, DecimalDouble, 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 и обратная связь.