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

Типы данных

Любая операция имеет результат и несколько операндов (как правило, два). Операнд – это элемент данных, участвующий в операции. Для каждой операции определены типы данных операндов, для которых она имеет смысл и по которым определяется тип результата. Естественен вопрос: по какому именно правилу определяется тип результата, ведь в качестве операндов могут быть операнды разных типов? Для ответа на этот вопрос необходимо ввести определение приведения. Приведение – это (автоматическое) преобразование значения одного типа в эквивалентное значение другого типа. Конечно, не всякое приведение возможно, т. е. не всегда можно сделать именно эквивалентное преобразование. Например, целое число 3 можно преобразовать в вещественное число 3.0 и значение сохранится, но вещественное число 3.1415926 нельзя преобразовать в целое, не потеряв информацию. Таким образом, учитывая приведения типов, можно однозначно определять тип результата операции по следующему правилу: если операция применяется к операндам различных типов, то операнд, у которого порядок типа ниже, преобразуется к типу операнда, у которого порядок выше и значение операции будет иметь, соответственно, тип высшего порядка. Существует четыре вида операций:

  1. Арифметические (+, – , *, \, /, ^, mod).
  2. Логические (not, and, or, xor, eqv, imp).
  3. Строковые (+,&).
  4. Операции отношения (=, <>, <, >, <=, >=, Is, Like).

Итак, мы описали встроенные типы данных. Но вспомним, что сам по себе тип – это просто характеристика данных, значимой же величиной являются сами данные. Первым шагом на пути работы с данными будет их объявление и инициализация, о которых сейчас и пойдет речь. После того как были описаны типы данных, необходимо приступать к работе с данными, т. е. к программированию. По существу эта работа делится на два этапа – на объявление переменных и на составление процедур обработки этих переменных.

Переменная – это элемент данных в программе, которому присвоено имя Значение переменной может задаваться и изменяться программой (переменная – не константа), но в соответствии с определенным типом данной переменной, который задается при ее объявлении. При объявлении задается имя (для идентификации переменной в программе), затем объявляется ее тип (для определения возможных значений переменной и способов ее обработки), а также определяется область видимости этой переменной.

Явное объявление простых переменных имеет следующий синтаксис:

{ Dim | Private | Public | Static } имя Переменной [As <типДанных>]
 [, имяПеременной [As <типДанных>]]...

Рассмотрим первую часть объявления – объявление области видимости переменной при помощи соответствующих ключевых слов. К сожалению, что такое область видимости переменной и время ее жизни, нельзя объяснить без специальных понятий и определений, которые будут приведены в разделе "Структура программы". Поэтому мы не будем подробно останавливаться на этом вопросе, кроме разве мелких замечаний. Более того, данные ключевые слова несут локальную нагрузку на семантику конструкций и их пропуск при описании ни на чем не скажется.

Следующая часть объявления – это имя переменной. Правила составления имен уже достаточно подробно обсуждались в разделе "Общие сведения", и мы не будем еще раз останавливаться на этом.

И наконец, последнее, что необходимо сделать при явном объявлении переменной, – указать ее тип, используя ключевое слово Аs, после которого идет ключевое слово, определяющее тип данных, например integer.

Помимо явного способа объявления переменной, существуют и неявные. Во-первых, можно непосредственно в имени переменной указать ее тип, добавив в конец имени специальный символ (например, $ – строка). А во-вторых, можно вообще не использовать операторы объявления, а при необходимости прямо на месте неявно вводить переменную. Например, можно сразу написать оператор d = 5. В данном случае не было предварительного (явного) объявления переменной, но все-таки она будет проинициализирована. Дело в том, что по умолчанию VBA расценивает данную переменную как нестатическую типа variant. Приведем теперь программу объявления переменных.

Программа 20.3. Объявление переменных.

Dim str As String, Var = 123.456
Dim str$, k&

Кстати, помимо явной инициализации переменных, например pi = 3.14, существует инициализация по умолчанию. То есть, когда вы объявляете переменную и не инициализируете ее, ей присваивается значение по умолчанию, так, например, для числовых типов это значение равно 0.

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

[Public | Private] Const имяКонстанты [As ТипДанных] = выражение

Ключевые слова Public и Private имеют такой же смысл, как и в случае с переменными. Отсутствие этих ключевых слов и описание константы внутри процедуры объявляет ее как локальную, использование же их, наоборот, объявляет ее как открытую или закрытую глобальную константу. Задание имени и типа данных аналогично случаю с переменными.

Выражение – это любое значение или формула, возвращающая значение, используемое в качестве константы. Например, мы хотим ввести константу, значением которой будет площадь – const squares = 20000. Или в виде формулы (зная длину и ширину):

Const lengths = 200
Const widths = 100
Const squares = length * width

Совет
Рекомендуется давать константам осмысленные имена и описывать их в самом начале модуля, а затем использовать всюду только именованные константы. Это делает программу не только понятнее, но и проще в сопровождении и отладке. Зачастую значение той или иной константы требуется изменить (хотя бы на время отладки), и тогда достаточно поменять лишь одно значение в описании константы. Если же в тексте программы использовалось непосредственно значение, то изменить все его вхождения намного сложнее
.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.