VBA для «чайников» (Каммингс) - страница 113

Но каковы правила VBA для порядка выполнения операций в отсутствие скобок? Если выражение содержит знаки операций из двух или нескольких категорий, то VBA выполняет операции из разных категорий в следующем порядке.

1. Арифметические операции и конкатенация.

2. Операции сравнения.

3. Логические операции.

Внутри каждой категории VBA тоже имеет правила порядка выполнения операций.

Арифметические операции, сравнение и логические операции осуществляются в порядке, соответствующем их представлению в табл. 7.2. Операции сравнения в VBA выполняются в том порядке, в каком они идут, слева направо. Если в выражении встречается несколько операций одного уровня, они тоже обрабатываются слева направо.

Таблица 7.2. Порядок выполнения операций в VBA (внутри каждой категории операции выполняются в том порядке, в котором приведены)


Знаки операций

Операции

Арифметические

́

Возведение в степень

-

Отрицание

* или /

Умножение или деление

\

Целочисленное деление

Mod

Вычисление остатка деления

+ или -

Сложение или вычитание

Конкатенация

&

Конкатенация строк

Сравнения

=

Равенство

<>

Неравенство (не равно)

<

Меньше

>

Больше

<=

Меньше или равно

>=

Больше или равно

Like

Сравнение строк с заданным образцом

Is

Проверка идентичности ссылок на объекты

Логические

Not

Логическое НЕТ

And

Логическое И

Or

Логическое ИЛИ

Хоr

Логическое Исключительное ИЛИ

Eqv

Логическая эквивалентность

Imp

Логическая импликация


Вычисления с помощью арифметических операторов

В VBA имеется семь знаков арифметических операций (см. табл. 7.2). Что делают четыре из них, вы определите сами с первого взгляда на них - это •+-, -, * и /.Например, результатом выражения 6/2 будет, конечно же, 3.

А вот остальные три знака арифметических операций не так очевидны. Они выполняют следующие действия.

* Операция ́ возводит первое значение в выражении в степень, равную второму значению. Например, результатом вычисления выражения

2 ́ 3

будет 8 (2 в 3 степени).

* Операция \ представляет целочисленное деление, в результате которого всегда получается целое число. VBA просто отбрасывает дробную часть, а не округляет результат. (Замечание. Эта операция представлена обратной косой чертой в отличие от обычного деления, которое представлено обычной косой чертой.) Например.

244 \ 7

равно 34, что соответствует числу полных недель в периоде времени, составляющем 244 дня.

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