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

Операторы

Любая программа представляет собой последовательность операторов. Мы уже рассматривали те операторы, которые предназначены для объявления переменных и определения типов. В этом разделе мы расскажем об операторах для выполнения действий с данными и для управления порядком выполнения других операторов. Существует три основных типа операторов: операторы присваивания, условные операторы и операторы цикла. Рассмотрим их по порядку.

Операторы присваивания необходимы для изменения значения переменных. В VBA существует четыре вида операторов присваивания:

  • Let (прямое присваивание);
  • LSet (левое присваивание);
  • RSet (правое присваивание);
  • set (объектное присваивание).

С оператором прямого присваивания мы уже встречались (=), правда, в несколько укороченном виде.

[Let] имяПеременной = <выражение>

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

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

Dim Temp As Integer Temp = "Строка"

Встретив подобное присваивание, компилятор выдаст сообщение об ошибке. Но есть и ряд исключений. В следующей программе сначала рассматривается присваивание переменным встроенных типов стандартных значений. Затем следует объявление трех записей типа Person, после чего идет присваивание значений первым двум записям, но через прямое обращение к полям записей. В последующем же присваивании происходит одновременное присваивание значений всех полей записи peopie2 соответствующим полям записи people3.

Программа 20.7. Присваивание

Sub LetEqual()
Dim age As Integer, str$
Dim people1 As Person, people2 As Person, peoples As Person
age = 32
str = "Жизнь прекрасна"
people1.name = "Александр"
people2.name = people1.name + "a"
Msgbox(people2.name)
peoples = people2
Msgbox(peopleS.name)
End Sub

Следующий оператор присваивания, который мы рассмотрим в данном разделе, – LSet. Он служит для специфического присваивания строк с одновременным выравниванием слева, а также для присваивания значения записи одного типа записи другого типа.

LSet имяСтроковойПвременной = СтроковоеВыражение LSet имяПеременной1 = имяПеременной2

В первом случае результатом присваивания является строка той же длины, что и у значения имяСтроковойпеременной. Если значение выражения СтроковоеВыражение длиннее, то лишние символы справа удаляются, если короче – заполняются пробелами справа.

Во втором случае присваивание аналогично вышеописанному случаю с использованием оператора Let, но только здесь не обязательно, чтобы типы полей совпадали. Конечно, подобное присваивание чревато сообщениями компилятора о несоответствии типов. Мы советуем использовать данную конструкцию с очень большим вниманием.

В программе 20.8 инициализированы две строковых переменных, после чего происходит левое присваивание и вывод значения переменной str1 ("<-Влево").

Программа 20.8. Левое присваивание

Sub LsetEqual()
Dim Str1 As String, Str2 As String
Str1 = "0123456789"
Str2 = "<-Влево"
Lset Str1 = Str2
Msgbox(Str1)
End Sub

Оператор RSet аналогичен оператору LSet, только в данном случае выравнивание происходит справа. Помимо этого, оператор RSet нельзя использовать для присваивания записей.

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

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