Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
153
Добавлен:
02.05.2014
Размер:
1.63 Mб
Скачать

3.3.5.Операторы, команды и выражения в vba

Операторы. Для объединения функций, переменных и значений в программном тексте Visual Basic служат специальные языковые элементы — операторы. Операторы Visual Basic образуют четыре общие категории: арифметические, логические, конкатенации и сравнения.

Арифметические операторы. В инструкциях Visual Basic доступны следующие арифметические операции: ^ (степень числа), * (умножение), / (деление), \ (целочисленное деление), Mod (деление по модулю), + (сумма), - (вычитание и унарный минус).

Логические операторы. Логические операции используются для комбинирования или модификации выражений типа True/False. Логические операции языка Visual Basic следующие: And (логическая конъюнкция), Eqv (логическая эквивалентность), Imp (логическая импликация), Not (логическое отрицание), Or (логическая дизъюнкция), Xor (логическое исключение).

Операторы конкатенации. Используются для строковой конкатенации двух выражений и имеют две разновидности & и +.

Операторы сравнения. В VBA используются следующие операторы сравнения: = (равно), <(меньше), <= (меньше или равно), >(больше), >= (больше или равно),<> (не равно), оператор Is (используется для сравнения двух переменных, содержащих объектные ссылки, оператор Like (используется для сравнения двух строк).

При сравнении можно использовать символы подстановки, символьные списки или сим­вольные интервалы в любой комбинации. В следующей таблице приведены символы под­становки, допустимые в образце:

Символ в образце

Чему соответствует

?

Любой единичный символ.

*

Ноль или больше символов.

#

Любая единичная цифра (0 — 9).

[список_символов]

Любой отдельный символ из список_символов.

[ !список_символов]

Любой отдельный символ не из список_символов.

Группа из одного или больше символов {список_символов), заключенных в квадратные скобки ([ ]), может использоваться для проверки совпадения любого единственного символа в строке и может содержать почти любой символьный код, включая цифры.

Чтобы проверить на совпадение специальные символы левая квадратная скобка ([), знак вопроса (?), знак номера (#) и звездочка (*), их нужно заключать в квадратные скобки. Правая квадрат­ная скобка (]) не может использоваться для проверки внутри группы, но может использоваться вне группы как отдельный символ.

При использовании дефиса (-) для определения верхнего и нижнего пределов интервала в список_символов можно специфицировать интервал символов. Например, [A-Z] возвраща­ет совпадение, если соответствующая символьная позиция в строке содержит любой из символов верхнего регистра в интервале A-Z. Внутри скобок можно включить несколько интервалов без разделителей.

Значение специфицированного интервала зависит от параметра оператора Option Compare и места локализации системы. Например, при использовании Option Compare Binary интер­вал [А-Е] соответствует А, В, С, D и Е. С Option Compare Text интервал [А-Е] соответствует А, а, В, b, С, с, D, d, Е, е.

Кроме сказанного, имеются следующие правила совпадения по образцу:

• восклицательный знак (!) в начале список_символов означает, что совпадение вернет True, если в строке имеются любые символы, за исключением символов в список_символов. Если восклицательный знак используется снаружи скобок, он сравнивается отдельно;

• если нужно сравнить дефис (-), он может устанавливаться либо в начале (после воскли­цательного знака, если таковой используется), либо в конце список_символов. В любой другой позиции дефис используется, чтобы идентифицировать интервал символов;

• когда специфицируется интервал символов, они должны вводиться в порядке возрастания (от самого низкого до самого высокого кода). [A-Z] — допустимый образец, но [Z-A] — нет;

• символьная последовательность [ ] рассматривается как строка нулевой длины ("").

Примеры:

Dim MyCheck

MyCheck = "aBBBa" Like "a*a" ' Возвращает True

MyCheck = "F" Like "[A-Z]" ' Возвращает True

MyCheck = "F" Like "[!A-Z]" ' Возвращает False

MyCheck = "a2a" Like "a#a" ' Возвращает True

MyCheck = "aM5b" Like "a [L-P]#[!c-e]" ' Возвращает True

MyCheck - "BAT123khg" Like "B?T*" ' Возвращает True

MyCheck = "CAT123khg" Like "B?Т*" ' Возвращает False

Старшинство операторов. Когда в выражении выполняется несколько операторов, каждая часть выражения оценива­ется и разрешается в предопределенном порядке, именуемом старшинством операторов.

Если выражение содержит операторы из более чем одной категории, вначале оцениваются арифметические операторы, затем операторы сравнения и последними оцениваются логические операторы. Все операторы сравнения имеют равное старшинство; то есть они оцениваются слева направо в том порядке, в котором они появляются. Арифметические и логические операторы оцениваются в следующем порядке старшинства:

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

Сравнения

Логические

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

Равенство (=)

Not

Отрицание (-)

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

And

Умножение и деление (*,/)

Меньше (<)

Or

Целочисленное деление (\)

Больше (>)

Xor

Деление по модулю (Mod)

Меньше или равно (<=)

Eqv

Сложение и вычитание (+,-)

Больше или равно (>=)

Imp

Строковая конкатенация (&)

Like

Is

Если в одном выражении имеется умножение и деление, каждый из операторов равнопра­вен и оценивается по порядку слева направо. Если в одном выражении имеется сложение и вычитание, каждый из операторов также равноправен и оценивается в порядке появления слева направо. Для переопределения порядка выполнения некоторых элементов выраже­ния, которые требуется оценить прежде других, можно использовать круглые скобки. Опе­раторы внутри круглых скобок всегда выполняются до операторов вне их. Однако внутри круглых скобок старшинство операторов выдерживается.

Оператор строковой конкатенации (&) — не арифметический оператор, но в старшинстве он следует за всеми арифметическими операторами и предшествует всем операторам срав­нения.

Оператор Like равен в старшинстве всем операторам сравнения, но фактически этот оператор совпадения с образцом стоит особняком от операторов сравнения.

Оператор Is — оператор сравнения объектной ссылки. Он не сравнивает объекты или их значения; он лишь выясняет, относятся ли две объектные ссылки к одному объекту.

Команды. Команда — ключевое слово Visual Basic, которое выполняет некоторое действие, но не возвращает значение. Чтобы использовать операцию, в строке программного текста (инст­рукции) вводится ее имя. Это упоминание называется вызовом команды. Когда требуется, команде передаются параметры, часто в круглых скобках. Некоторые команды требуют круглых скобок; другие, наоборот, их не допускают.

Категории команд. Команды Visual Basic подразделяются на общие категории, основные из которых перечис­лены в следующей таблице:

Категория

Описание

Управление выполнением

Управляет потоком выполнения программного кода. Позволяет определять циклы, переходы к специфицированной строке кода и управлять ошибками

Определение и управ­ление переменными и константами

Объявление переменных и констант.

Комментарии

Позволяют определять комментарии кода

Определение процедур

Объявление процедур Visual Basic, внешних процедур DLL и завершение объявлений процедур, типов, свойств

Файловый ввод-вывод

Позволяют читать и записывать информа­цию в файлы операционной системы.

Управление директори­ями/файлами

Позволяют создавать, удалять и осуществ­лять навигацию между каталогами, блокиро­вать или переименовывать файлы

Разные

Выражения. Выражение Visual Basic может быть сформировано любыми из следующих элементов, отдельными или объединенными соответствующими операторами: константы; функции и процедуры; объектные свойства; переменные.

Оценка выражения. Порядок, в котором Visual Basic оценивает операции выражения, рассмотрены выше, в разделе "Старшинство операторов".

Выражение оценивается для получения значения, которое представляет это выражение. Оценка выражения включает вычисления в функциях и выполнение специфицированных инструкций. Когда выполнено вычисление в функции, функция заменяется ее возвращае­мым значением. Так как выражение представляет значение, каждое выражение имеет тип данного. Отдельные элементы, составляющие выражение, также имеют типы данных.

Когда в выражении объединяются элементы различных типов, то для упрощения выраже­ния и результата Visual Basic выполняет неявные преобразования типов данных.

Соседние файлы в предмете Базы данных