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

244 Mod 7

что в результате дает 6. Обратите внимание, что результатом выполнения операции Mod всегда будет целое число. Если вы захотите узнать дробную часть от деления в десятичной форме, используйте выражение типа

(244 Mod 7) / 7

Это то же самое, что и 6/7, или примерно 0,857.

Сравнение значений

В VBA используется шесть операций сравнения для сравнения числовых и строковых значений, а также две специальные операции Like (для строк) и Is (для объектов).

Заметьте, что знак равенства в YBA (=) используется в двух разных случаях.

В объявлении равенство используется для присваивания значения переменной (см. выше раздел "Размещение информации в переменных"), а в качестве операции сравнения знак равенства определяет, будут ли два значения одинаковыми.

Результатом вычисления выражения, основанного на этих операциях, всегда является либо True (Истина), либо False (Ложь). Например, вот выражение с использованием операции <= (меньше или равно):

intX <= 12

Если значением intX является 12, то результатом выражения будет False, поскольку 12 не меньше, чем 12.

Чаще всего выражения с операциями сравнения используются в условных операторах типа If . . . Then. Условные операторы будут подробно обсуждаться в главе 8, но следующий пример нелишний и здесь:

If intX = 2000 Then

Застолье

End If

Здесь с помощью знака операции - выясняется, равны ли значения по обе стороны от него. Если значения равны, то результатом выражения будет True (Истина), иначе False (Ложь); другими словами: '"Если значение intX равно 2000, то выполнить процедуру Застолье".

Сравнение строк

Знаки операций сравнения можно использовать для сравнения строк текста и чисел.

Выражение

"Петуния" = "Нарцисс"

в результате дает False - и это очевидно, поскольку эти две строки не одинаковы.

Но есть случаи, когда результат сравнения строк предсказать не так просто. Чтобы получать правильные результаты при сравнении строк, нужно знать, по каким правилам VBA решает, что одна строка '"больше", чем другая.

Если вы не потребуете сравнивать иначе, VBA будет использовать метод двоичного сравнения. Две строки будут сравниваться на основе числовых кодов входящих в эти строки символов, т.е. кодов, которыми символы представляются в программе. В такой системе кодирования наименьшие числа соответствуют знакам пунктуации, за ними следуют цифры, затем прописные буквы, строчные и, наконец, буквы с акцентами (последнее касается латинской кодировки, поскольку в случае кириллической колировки на месте букв с акцентами находятся русские буквы). В этом случае, ввиду того, что коды строчных букв больше кодов прописных букв, выражения "а" > "А" и "а" > "Z", например, оба дают в результате True.