Иллюстрированный самоучитель по Microsoft Outlook 2002

Типы данных

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

Данные в VBA характеризуются своими типами, которые определяют:

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

В свою очередь типы данных делятся на простые (встроенные и определяемые) и на структурные, именно в таком порядке мы и будем их описывать.

Итак, начнем с встроенных типов данных. Как и любой язык программирования высокого уровня, VBA содержит все привычные встроенные типы данных: арифметические, строковые и логические, но есть и свои типы, специфические для VBA. Полный перечень встроенных типов данных VBA с соответствующими областями значений и требуемой памятью приведен в табл. 20.2.

Таблица 20.2. Встроенные типы данных VBA.

Тип данных Описание Область значений Требуемая память
Boolean Логическое значение True (Истина) и False (Ложь) 2 байта
Byte Число без знака 0-255 1 байт
Currency Десятичные числа с фиксированным количеством знаков после запятой -922 337 203 685 477.5808-922 337 203 685 477.5807 8 байтов
Date Используется для хранения дат 1.01.0100г.-31.12.9999г. 8 байтов
Decimal Любое число 28 знаков 12 байт
Double Числовые значения с плавающей точкой двойной точности -1.7Е308--4.9Е324 для отрицательных чисел и 4.9Е324-1.7Е308 для положительных чисел 8 байтов
Integer Короткие целые числовые значения -32 768-32 767 2 байта
Long Длинные целые числовые значения -2 147483648-2147483647 4 байта
Object Ссылка на объект   4 байта
Single Числовые значения с плавающей точкой обычной точности -3.4Е38--1.4Е45 для отрицательных чисел и 1.4Е-45-3.4Е-45 для положительных 4 байта
String Используется для хранения строковых значений Длина строки от 0 до 64 Кбайт 1 байт на символ
Variant Может использоваться для хранения всех вышеперечисленных типов Значения любого из вышеперечисленных типов плюс Null, Error, Empty, Nothing. 16 байт плюс 1 байт на каждый символ строковых значений

Если такие типы данных, как integer или string не требуют особых комментариев, поскольку они стандартны и просты, то типы данных object и variant следует прокомментировать. Про тип данных object мы отдельно поговорим в разделе "Классы и объекты", сейчас же рассмотрим уникальный в своем роде тип Variant.

Тип variant – это универсальный тип данных, позволяющий программисту не думать о том, каким будет тип переменных. С одной стороны, безусловное удобство: не надо думать при объявлении переменной, с другой – это может привести к ошибкам, которые трудно обнаружить. Более того, на обработку переменных данного типа тратится больше времени, да и память расходуется нерационально (особенно, когда речь идет о статических массивах данного типа).

Мы советуем (особенно начинающим программистам) не злоупотреблять данным типом, хотя ряд приемов его использования заметно упрощает программирование. Например, вы хотите, чтобы пользователь программы ввел целое число (после чего программа нарисует круг соответствующего радиуса) и переменную ввода целого типа. Но что, если пользователь введет вместо целого числа вещественное или, вообще, строковое значение? Произойдет ошибка при попытке присвоения переменной значения не того типа.

Вот тут-то и необходим тип Variant. Если переменная для ввода будет объявлена как variant, ничего страшного не случится: введенное значение бу дет благополучно присвоено этой переменной, а вы получите возможность проанализировать введенное значение и попросить пользователя повторить ввод, если введенное им значение не отвечает требуемым условиям. Теперь перейдем к разговору о третьей составляющей нашего определения типа данных, об операциях. Операция – это действие, выполняемое над данными.

[Результат = ] операнд1 <операция> операнд2
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.