Const cbytСладкий = 1, cbytСоленый = 2
Const cbytКислый = 3, cbytГорький = 4
Do While intВкус = cbytКислый
ДобавитьСладкого
intВкус = ПробаВкуса()
Loop
В VBA операция представляет собой либо специальный символ, либо ключевое слово в выражении, комбинирующем два значения (субоператора, если желаете) для получения нового результата.
В следующем выражении операция + (операция сложения) увеличивает на 3 значение переменной intA:
intA + 3
Значением выражения и будет результат такого сложения. (Не забывайте, что выражение не может выполняться само по себе - оно должно быть частью VB А-оператора, например intB = intA + 3. По поводу выражений см. выше раздел ''Выражен-и-я"'.)
VBA разделяет операции на три главные категории - арифметические, логические и операции сравнения, плюс несколько не попадающих в эти категории операций типа конкатенации для работы со строками. Чуть позже в этой же главе мы рассмотрим каждую из категорий отдельно.
При использовании со строками текста знак + представляет конкатенацию, т.е. соединение двух строк в одну, а не сложение. Но для строк лучше использовать "настоящий" знак конкатенации -символ &. VBA интерпретирует выражение
"Меня зовут " & "Боря"
как "Меня зовут Боря".
Кстати, знак операции + можно использовать для того, чтобы прибавлять к числам текст, если текст состоит только из цифр. Например, в результате выполнения оператора
intC = 123 + "456"
значением переменной intC будет 579.
А вот пример использования операции сравнения:
Tan(sngAngleA) <> 1.4
Знак <> представляет операцию "не равно"'. С его помощью проверяется, не равны ли два значения в выражении, а результатом его выполнения будет либо True (Истина), либо False (Ложь). Если тангенс sngAngleA не равен 1.4, результатом выражения будет True, а иначе результатом будет False.
В более сложных выражениях, включающих несколько знаков операций, VBA нужно знать, какие операции выполнять первыми, вторыми, а какие третьими. В выражении intA + intB * intC два знака операций: + (операция сложения) и * (операция умножения). На русском это выражение читается как "intA плюс intB умножить на intC".
В данном выражении символ * идет вторым, но он имеет приоритет перед операцией сложения. Сначала VBA умножит intB на intC, а уж затем добавит полученный результат к intA. Как можно догадаться из этого примера, VBA следует определенной последовательности выполнения отдельных частей выражения, когда в выражении несколько знаков операций.
Чтобы изменить последовательность операций, порождаемую приоритетами, в выражении используются скобки. Если вы напечатаете (intA + intB) * intC то VBA сначала сложит две переменные, а затем умножит результат на значение переменной intC.
Но каковы правила VBA для порядка выполнения операций в отсутствие скобок? Если выражение содержит знаки операций из двух или нескольких категорий, то VBA выполняет операции из разных категорий в следующем порядке.
1. Арифметические операции и конкатенация.
2. Операции сравнения.
3. Логические операции.
Внутри каждой категории VBA тоже имеет правила порядка выполнения операций.
Арифметические операции, сравнение и логические операции осуществляются в порядке, соответствующем их представлению в табл. 7.2. Операции сравнения в VBA выполняются в том порядке, в каком они идут, слева направо. Если в выражении встречается несколько операций одного уровня, они тоже обрабатываются слева направо.
Таблица 7.2. Порядок выполнения операций в VBA (внутри каждой категории операции выполняются в том порядке, в котором приведены)
Знаки операций
|
Операции
|
Арифметические
|
́
|
Возведение в степень
|
-
|
Отрицание
|
* или /
|
Умножение или деление
|
\
|
Целочисленное деление
|
Mod
|
Вычисление остатка деления
|
+ или -
|
Сложение или вычитание
|
Конкатенация
|
&
|
Конкатенация строк
|
Сравнения
|
=
|
Равенство
|
<>
|
Неравенство (не равно)
|
<
|
Меньше
|
>
|
Больше
|
<=
|
Меньше или равно
|
>=
|
Больше или равно
|
Like
|
Сравнение строк с заданным образцом
|
Is
|
Проверка идентичности ссылок на объекты
|
Логические
|
Not
|
Логическое НЕТ
|
Читать дальше