strVar Like "Д*ь"
имеет значение True, если строка strVar имеет значение "День", "Дождь", "Дурень" и т.д., т.е. любое слово, начинающееся на букву «Д» и заканчивающееся на букву «ь». Следующее выражение:
strVar Like "к?т"
имеет значение True, если в строке strVar записано "кит" или "кот", но не "компот".
Группа из одного и более символов, заключенная в квадратные скобки «[]» может использоваться для поиска одного из них в строке, и может состоять из любых символов, включая цифры. Тогда следующее выражение:
strVar Like "аб[вг]"
имеет значение True, если в строке strVar записано "абв" или "абг". А такое выражение:
strVar Like "м[!а]л"
имеет значение True, если строка strVar имеет значение "мел" или "мол" или нечто похожее, но не "мал".
В квадратных скобках можно указывать также диапазон значений символов, с которыми требуется совпадение или, наоборот, их отсутствие в строке. Тогда:
StrVar Like "[а-ж]очка"
StrVar Like "[!а-ж]очка"
первое выражение имеет значение True, если строка strVar содержит "дочка" или "бочка", но не "кочка", а второе, наоборот, имеет значение True, если в ней записано "кочка" или "мочка" и False – если "дочка" или "бочка". При указании диапазона символов в квадратных скобках необходимо следить за тем, чтобы сначала стоял «меньший» символ, а потом – «больший». Например, следующее выражение [а-я] правильное, а [я-а] – нет. Пустая пара квадратных скобок воспринимается как пустая строка нулевой длины, т.е. игнорируется.
Для того чтобы найти в строке один из специальных символов «#», «*», «?» и «[», его необходимо заключить в квадратные скобки. Например, наличие символа «*» в строке strVar можно проверить с помощью такого выражения:
StrVar Like "*[*]*"
Правая квадратная скобка «]» и восклицательный знак «!» тоже имеют специальное значение, и для того чтобы включить их в образец поиска, их, наоборот, необходимо записывать вне квадратных скобок. Например, для поиска восклицательного знака в конце строки используется такое выражение:
StrVar Like "*!"
Для поиска символа дефиса «-» его следует поместить в начале или в конце строки образца, поскольку, будучи помещенным в середине, он будет означать диапазон символов.
Конкатенация – это операция объединения (слияния) двух текстовых строк в одну, более длинную. В качестве символа оператора конкатенации используется или символ «&» или символ «+». Символ конкатенации «+» в VBA «пришел» из BASIC, и используется, в основном, для совместимости с предыдущими версиями. Действие этих знаков совершенно одинаково, за исключением случая, когда операнды содержат значения, которые могут быть преобразованы в числа. Оператор «&» выполняет при этом конкатенацию, а «+» – арифметическое сложение. Например, в результате выполнения такой процедуры:
1: Sub TestConcatenate()
2: Var1 = 12 & "34"
3: Var2 = Var1 & " типа " & TypeName(Var1)
4: MsgBox Var2, , "Первый результат"
5: Var1 = 12 + "34"
6: Var2 = Var1 & " типа " & TypeName(Var1)
7: MsgBox Var2, , "Второй результат"
8: End Sub
будут получены следующие результаты:
Первый из них является результатом того, что левый операнд 12 в строке 2 имеет тип данных Integer, во время выполнения операции конкатенации «&» преобразовывается в тип String, и результат «1234» при этом тоже имеет тип String. Второй результат является следствием того, что при оценке второго выражения (строка 5) будет использована операция арифметического сложения, а не конкатенация, и поэтому, наоборот, правый операнд "34" будет преобразован к типу данных Double. Результат операции тоже будет иметь тип Double. Строки 3 и 6 – наиболее типичное использование операции конкатенация – слияние нескольких строк в одну. Полученные таким образом текстовые строки, в строках 4 и 7 процедуры TestConcatenate с помощью функций MsgBox выводятся в соответствующие окна сообщений. Используемая в процедуре функция TypeName возвращает в виде значения типа String имя типа единственного своего параметра, в качестве которого может быть использовано любое выражение VBA.
Поскольку символ амперсанд «&» в VBA используется и для обозначения оператора конкатенации, и для указания значения типа Long, то для устранения этой неоднозначности хорошей практикой программирования является отделение оператора от операндов, по крайней мере, одним пробелом. Если же, например, в строке 2 процедуры TestConcatenate не отделить символ амперсанда «&» от числа 12, то последнее будет воспринято как значение тип Long, а вся инструкция – как не соответствующая синтаксису, с выдачей соответствующего сообщения.
Логические операторы служат для построения логических выражений. В качестве операндов могут использоваться только значения типа Boolean. Типом логического выражения также является Boolean. Далее приведен полный список логических операторов VBA:
And |
– конъюнкция (И), |
Or |
– дизъюнкция (ИЛИ), |
Not |
– отрицание (НЕ), |
Xor |
– исключающая дизъюнкция (исключающее ИЛИ), |
Eqv |
– эквивалентность, |
Imp |
– импликация. |
Оператор And выполняет логическую операцию конъюнкция (И). Значение выражения будет True тогда и только тогда, когда его оба операнда будут иметь значение True.
Оператор Or выполняет логическую операцию дизъюнкция (ИЛИ, включающее ИЛИ). Значение выражения будет True тогда и только тогда, когда хотя бы один из его операндов будет иметь значение True.
Оператор Not унарный, и выполняет логическую операцию отрицание (НЕ). Он инвертирует значение своего единственного операнда – если операнд имеет значение True, то все выражение будет иметь значение False, и наоборот, если операнд имеет значение False, то всё выражение – True.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.