Логические операторы VBA используются для объединения результатов отдельных логических выражений, чтобы создать сложные критерии для принятия решений в процедуре (таблица Б.3).
Таблица Б.3 – Логические операторы VBA
Логический |
Синтаксис |
Имя/Описание |
||
оператор |
||||
El And E2 |
Конъюнкция . True, если оба Е1 и Е2 |
|||
имеют значение True, иначе – False |
||||
El Or E2 |
Дизъюнкция . True, если одно выра- |
|||
жение или оба (Е1 и Е2) являются |
||||
равными True; иначе – False |
||||
Not El |
Отрицание . True, если Е1 имеет зна- |
|||
чение False; False, если El является |
||||
равным True |
||||
El Xor E2 |
Исключение . True, если Е1 и Е2 |
|||
имеют разные значения; иначе – |
||||
El Eqv E2 |
Эквивалентность . True,если Е1 име- |
|||
ет то же самое значение, что и Е2; |
||||
иначе – False |
||||
El Imp E2 |
Импликация . False, когда Е1 является |
|||
равным True и Е2 равно False; иначе |
||||
True. |
||||
Операнды Е в этой таблице представляет собой любое допустимое выражение с результатом типа Boolean, такое как операция сравнения.
Приоритеты выполнения операций при вычислении сложных выражений
Сложное (составное) выражение (complex expression) – это любое выражение, образованное из двух или более выражений. В таблице Б.4 собраны операции по группам в порядке убывания приоритета, то есть чем ниже расположена группа, тем позже выполняются указанные в ней операции. Для изменения этого порядка применяются круглые скобки. Операции одного уровня выполняются слева направо в том порядке, в котором они записаны в выражении.
Таблица Б.4 – Приоритеты операций VBA
Оператор |
Комментарии |
Возведение в степень, наивысший приоритет |
|
Унарный минус - изменение знака числа |
|
Умножение и деление имеют равные приоритеты; они вы- |
|
Деление нацело |
|
Остаток от деления нацело |
|
Сложение и вычитание имеют равный приоритет; они вы- |
|
числяются по мере появления в выражении слева направо |
|
Всякая конкатенация строк выполняется после любых |
|
арифметических операций в выражении и перед любыми |
|
операциями сравнения или логическими операциями |
|
<, <=, >, >=, |
Все операторы сравнения имеют равные приоритеты и вы- |
числяются по мере появления в выражении слева направо. |
|
Используйте круглые скобки для группирования операто- |
|
ров сравнения в выражениях |
|
Логические |
Not And Or Xor Eqv Im p – имеют низший приоритет |
операторы |
|
Приложение В Математические функции VBA
VBA предоставляет стандартный набор математических функций приведенный в таблице В.1.
Таблица B.1 – Математические функции VBA
Возвращает / действие |
||
Возвращает абсолютное значение N |
||
Косинус угла N, где N – это угол, измеренный в ра- |
||
Возвращает синус угла; N – это угол, измеренный в |
||
радианах |
||
Возвращает тангенс угла; N – угол в радианах |
||
Возвращает арктангенс N как угол в радианах |
||
Возвращает константу е, возведенную в степень N (е – |
||
это основание натуральных логарифмов и она (при- |
||
близительно) равна 2,718282 |
||
Возвращает целую часть N. Fix не округляет число, а |
||
отрицательным, Fix возвращает ближайшее отрица- |
||
тельное целое большее, чем или равное N |
||
Возвращает целую часть N. Int не округляет число, а |
||
отбрасывает любую дробную часть. Если N является |
||
отрицательным, Int возвращает ближайшее отрица- |
||
тельное целое меньшее, чем или равное N |
||
Возвращает натуральный логарифм N |
||
Возвращает случайное число; аргумент является не- |
||
обязательным. Используйте функцию Rnd только |
||
после инициализации VBA-генератора случайных чи- |
||
сел оператором Randomize |
||
Возвращает знак числа: –1, если N – отрицательное; |
||
1, если N –положительное; 0, если N равно 0 |
||
Возвращает корень квадратный из N. VBA отображает |
||
ошибку исполнения, если N – отрицательное |
||
Операнд N означает любое численное выражение? допустимое в
Аргумент тригонометрических функции (синуса, косинуса и тангенса) задается в радианах, а не в градусах. Обратная тригонометрическая функция A t n (x ) возвращает в программу значение угла в радианах от -π/2 до π/2, тангенс которого равен значению арифметического выражения х .
Связь между радианной и градусной мерами угла выражается через иррациональное число π ≈ 3,14159265358979323846.
Радианы= |
Градусы× π |
Градусы= |
Радианы× 180 |
Для перевода градусов в радианы можно также использовать встроенную функцию Excel - Application.Radians(x ), где x – угол, за-
данный в радианах.
Для получения числового значения константы π с точностью 15 цифр мантиссы можно использовать встроенную функцию Excel Application.Pi(), либо функцию VBA арктангенс
Pi= Application.Pi() либо Pi=4*Atn(1)
Примеры записи тригонометрических функций
В Visual Basic можно выделить пять основных и важных логических операторов: And, Or, Not, Xor и Eqv. Роль каждого из них я сейчас и попытаюсь объяснить!
Итак,
And!
Это,
наверное, самый простой и нужный логический оператор среди других.
Help:
Возвращает
результат конъюнкции (логического И) для двух выражений.
Синтксис:
результат
= выражение1
And
выражение2
Т.е. результат будет истинным только в том случае, когда истинны выражение1 И выражение2. Возвращаемые оператором значения представлены в следующей таблице:
выражение1 | выражение2 | результат |
True | True | True |
True | False | False |
True | Null | Null |
False | True | False |
False | False | False |
False | Null | False |
Null | True | Null |
Null | False | False |
Null | Null | Null |
А теперь маленький пример:
Представим себе, что переменные User_Has_Computer и User_Has_Car объявлены как булевы значения и в процессе каких-нибудь действий приняли значения либо True либо False. Вы устанавливаете условие, проверяющие эти значения:
Мы же сэмулируем это сами:) - впишите куда - нибудь следующие строки:
Dim
User_Has_Car
As
Boolean
User_Has_Computer
=
True
User_Has_Car
=
True
If
User_Has_Computer
And
User_Has_Car
Then
MsgBox "Вы счастливый человек!"
End
If
При проверки данного условия на экран выскочит сообщение, извещающие, что пользователь счастливый человек, т.к. у него есть машинa И компьютер:-)! А теперь перед третьей или четвёртой строкой поставьте апостроф """ - закоменнтируйте строку. Теперь одна из переменных будет False по умолчанию. Теперь сообщение НЕ выскочит, т.к. пользователь не очень счастливый, имея машину ИЛИ компьютер...
Следующий оператор не менее простой - Or.
Help:
Выполняет
операцию логического ИЛИ (сложения) для двух выражений.
Синтаксис:
результат
= выражение1
Or
выражение2
Результат
будет истинным только в том случае, если только одно из выражений истинно.
Возвращаемые оператором значения представлены в следующей таблице:
выражение1 | выражение1 | результат |
True | True | True |
True | False | True |
True | Null | True |
False | True | True |
False | False | False |
False | Null | Null |
Null | True | True |
Null | False | Null |
Null | Null | Null |
И снова маленький пример с прежними булевыми перменными User_Has_Computer и User_Has_Car, которые в процессе каких-нибудь действий приняли значения либо True либо False.
Dim
User_Has_Computer
As Boolean
Dim
User_Has_Car
As
Boolean
User_Has_Computer
=
False
User_Has_Car
=
True
If
User_Has_Computer Or User_Has_Car
Then
MsgBox "Вы почти счастливый человек!"
End
If
При проверки данного условия на экран выскочит сообщение, извещающие, что пользователь почти счастливый человек, т.к. у него есть машинa, но нет компьютера:-|...
Оператор Not.
Help:
Выполняет
над выражением операцию логического отрицания.
Синтаксис:
результат
= Not
выражение
Т.е.
результат
стаёт
противополжным выражению
(исключая Null). Возвращаемые оператором
значения представлены в следующей таблице:
Пример:
Dim User_Has_Computer As Boolean
User_Has_Computer = False
If
Not
User_Has_Computer
Then
MsgBox "Сочувствую...:)"
End
If
Объясняю: условие If
... Then выполняется тогда, когда какое-нибудь выражение (на месте...)
равно True. Представим, что переменная User_Has_Computer
= False. Тогда строка
Not
User_Has_Computer даёт результат True и условие выполняется!
Оператор Xor.
Help:
Выполняет операцию
исключающего ИЛИ для двух выражений.
Синтаксис:
[результат
=]
выражение1
Xor
выражение2
В принципе, этот оператор
похож на Or, но это не просто ИЛИ
, а исключающее ИЛИ
. Если
одно и только одно из выражений
истинно (имеет значение True), результат
имеет значение True. А оператор Or допускает два истинных выражения
.
Результат
Пример:
Dim
User_Has_Computer
As Boolean
Dim
User_Has_Car
As
Boolean
User_Has_Computer
=
False
User_Has_Car
=
True
If
User_Has_Computer
Xor
User_Has_Car
Then
MsgBox "Вам нужна машина И компьютер!"
End
If
Здесь так же, как и в предыдущем примере условие выполняется только тогда, когда строка User_Has_Computer Xor User_Has_Car истинна (= True). А истинна она тогда и только тогда, когда только одно из условие истинно. Если оба, то условие уже не исполнится.
Оператор Eqv.
Help:
Используется
для проверки логической эквивалентности двух выражений.
Синтаксис:
результат
= выражение1
Eqv
выражение2
Тут
совсем всё просто: результат будет истинным в том случае, если оба выражения
либо истинны, либо ложны. Результат
определяется следующим образом:
Пример:
Dim
User_Has_Computer
As Boolean
Dim
User_Has_Car
As
Boolean
User_Has_Computer
=
True
User_Has_Car
=
True
If
User_Has_Computer
Eqv
User_Has_Car
Then
MsgBox "Вы или счастливый или несчастный человек!"
End
If
Здесь компьютер назовёт Вас человеком "счастливым или несчастным", т.к. условие выполняется только тогда, когда пользователь имеет и машину и компьютер или не того и не другого.
Основные операторы языка VBA
Комментарии (0)
3.1. Правила записи операторов
При записи операторов необходимо придерживаться следующих правил:
Каждый новый оператор записывается с новой строки.
Чтобы записать несколько операторов на одной строке, их разделяют между собой двоеточием (:).
Если оператор не помещается в одной строке, то необходимо поставить в конце строки пробел и знак подчеркивания (_), а затем продолжить не поместившуюся часть на следующей строке.
3.2. Оператор присваивания
Оператор присваивания используется, если какой-то переменной нужно присвоить новое значение. Он имеет следующий синтаксис:
ИМЯ_ПЕРЕМЕННОЙ = ВЫРАЖЕНИЕ
Сначала вычисляется выражение в правой части, а затем результат присваивается переменной, стоящей в левой части.
Например . Записать с помощью оператора присваивания следующее математическое выражение:
На VВА это выражение можно записать в виде следующего оператора:
Y = a^(1/3)+(a^2+Exp(-b))/(Sin(a)^2-Log(b))
3 .3. Операторы ввода-вывода
3 .3.1. Оператор и функция MsgBox
Оператор MsgBox осуществляет вывод информации в диалоговом окне и устанавливает режим ожидания нажатия кнопки пользователем.
Он имеет следующий синтаксис:
MsgBox Сообщение[,Кнопки][, Заголовок]
Аргументы:
Сообщение - обязательный аргумент, задающий в окне выводимое информационное сообщение. Может состоять из нескольких текстовых строк, объединенных знаком & . Использование в этом аргументе Chr(13) приводит к переходу на новую строку при выводе информации.
Кнопки - значение этого аргумента определяет категории появляющихся в окне кнопок. От значения аргумента кнопкизависит также, появляется ли в окне какой-либо значок. Если не указано, какие кнопки необходимо отображать в окне сообщений, то используется значение по умолчанию, соответствующее кнопке ОК. В табл. 3.1 приведены возможные комбинации кнопок и значков в окне сообщений.
Заголовок - задает заголовок окна.
Функция MsgBox возвращает значение типа Integer, указывающее, какая кнопка была нажата в диалоговом окне.
Таблица 3.1. Допустимые значения переменной кнопки
Отображение |
Аргумент |
Кнопка ОК |
|
Кнопки ОК и Отмена |
|
Кнопки Да и Нет |
|
Кнопки Да, Нет и Отмена |
|
Кнопки Прекратить, Повторить и Игнорировать |
VbAbortRetryIgnore |
Кнопки Повторить и Отмена. |
|
Информационный знак |
|
Знак вопроса |
|
Знак восклицания |
Например . Вывести сообщение о текущей дате.
MsgBox "Сегодня на календаре" & Date , "Внимание"
В результате будет выведено следующее окно (рис.3.1).
После щелчка по кнопке ОК окно сообщения закроется, и выполнение программы возобновится с оператора, стоящего непосредственно за вызовом MsgBox.
3.3.2. Функция InputBox
Функция InputBox осуществляет ввод значений переменных с помощью окна ввода и имеет следующий синтаксис:
Имя_Переменной = InputBox(Сообщение[, Заголовок ] )
Аргументы:
Сообщение - обязательный аргумент. Задает в окне информационное сообщение, обычно поясняющее смысл вводимой величины
Заголовок - задает заголовок окна.
Например , Ввести значение переменной N с клавиатуры, предусмотрев значение по умолчанию равное 10.
Для этого можно использовать следующий оператор:
N = InputBox("Введите N", "Ввод исходных данных",10)
В результате будет выведено следующее окно для ввода значения переменной N (рис.3.2).
Если значение по умолчанию подходит пользователю, то после щелчка кнопки ОК окно ввода закроется, переменной N присвоится значение 10 и выполнение программы возобновится с оператора, стоящего непосредственно за вызовом InputBox .
Если же значение по умолчанию не подходит пользователю, то перед щелчком по кнопке ОК необходимо ввести нужное значение переменной N.
3 .4. Условный оператор IF
Для реализации разветвляющегося вычислительного процесса в VBA используется оператор If…Then…Else, который представляет собой простейшую форму проверки условий. Он имеет следующий синтаксис:
If УСЛОВИЕ Then ОПЕРАТОР_1 E lse ОПЕРАТОР_2
ОПЕРАТОР_1 выполняется, если УСЛОВИЕ истинно, в противном случае выполняется ОПЕРАТОР_2 . При этом оператор If…Then…Else записывается в одну строку.
УСЛОВИЕ - это выражение логического типа. Результат выражения всегда имеет булевский тип. Выражение может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения, указанные в табл. 3.2.
Таблица 3 .2. Логические отношения
Операция |
Название |
Выражение |
Результат |
True, если А равно В |
|||
True, если А не равно В |
|||
True, если А,больше В |
|||
True, если А меньше В |
|||
Больше или равно |
True, если А больше или равно В |
||
Меньше или равно |
True, если А меньше или равно В |
Сложные условия образуются из простых путем применения логических операций и круглых скобок. Список логических операций приведен в табл. 3.3.
Таблица 3 .3. Логические операции
Название |
Выражение |
Результат |
|||
Логическое |
|||||
Логическое И |
|||||
Логическое ИЛИ |
В условном операторе допустимо использование блока операторов вместо любого из операторов. В этом случае условный оператор имеет вид:
If УСЛОВИЕ Then
БЛОК_ОПЕРАТОРОВ_1
БЛОК_ОПЕРАТОРОВ_2
End I f
В условном операторе может проверяться несколько условий. В этом случае условный оператор имеет вид:
If УСЛОВИЕ_1 Then
БЛОК_ОПЕРАТОРОВ_1
ElseIf УСЛОВИЕ_2 Then
БЛОК_ОПЕРАТОРОВ_2
Else
End If
Пример 1 . Написать часть программы для алгоритма на рис. 3.3.
Пример 2. Написать часть программы для алгоритма на рис. 3.4.
3.5. Оператор выбора Select Case
Оператор Select Case удобно использовать, когда в зависимости от значения некоторого выражения, имеющего конечное множество допустимых значений, необходимо выполнить разные действия. Он также относится к условным операторам, но имеет другой вид:
Select Case ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ
Case ЗНАЧЕНИЯ_1
ОПЕРАТОРЫ_1
Case ЗНАЧЕНИЯ _ 2
ОПЕРАТОРЫ _ 2
. . .
Case ЗНАЧЕНИЯ_N
ОПЕРАТОРЫ _N
[ Case Else
ИНАЧЕ _ ОПЕРАТОРЫ]
End Select
ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ может иметь любой скалярный тип, кроме вещественного. ЗНАЧЕНИЯ состоят из произвольного количества значений или диапазонов, отделенных друг от друга запятыми.
Тип ЗНАЧЕНИЙ должен совпадать с типом ПРОВЕРЯЕМОГО_ВЫРАЖЕНИЯ .
Сначала вычисляется ПРОВЕРЯЕМОЕ_ВЫРАЖЕНИЕ . Если его значение совпадает с одним из значений ЗНАЧЕНИЯ_I , то выполнятся ОПЕРАТОРЫ_I End Select . Если его значение не совпадает ни с одним из значений ЗНАЧЕНИЯ_I , то выполнятся ИНАЧЕ_ОПЕРАТОРЫ и управление передается оператору, стоящему после End Select
Например. Написать часть программы для алгоритма на рис. 3.5, определяющего значение переменной S в зависимости от значения переменной n.
3.6. Операторы цикла
Для реализации циклического вычислительного процесса, т. е. многократного выполнения одного или нескольких операторов, служит оператор цикла For…Next , который имеет следующий синтаксис:
For СЧЕТЧИК=НАЧ_ЗНАЧЕНИЕ Т o КОН_ЗНАЧЕНИЕ Step ШАГ
БЛОК_ОПЕРАТОРОВ
БЛОК_ОПЕРАТОРОВ
Next СЧЕТЧИК
Цикл For…Next перебирает значения переменной СЧЕТЧИК , которая является параметром цикла, от начального до конечного значения с указанным шагом изменения. При этом обеспечивается выполнение блока операторов тела цикла при каждом новом значении счетчика. Если Step ШАГ в конструкции отсутствует, то по умолчанию считается, что шаг равен 1. По оператору Exit For можно выйти из оператора цикла до того, как СЧЕТЧИК достигнет последнего значения.*
Для перебора объектов из группы подобных объектов, например, ячеек из диапазона или элементов массива, удобно использовать оператор цикла For… Each…Next .
For Each Элемент In Группа
БЛОК _ ОПЕРАТОРОВ
БЛОК_ОПЕРАТОРОВ
Next Элемент
В VBA для организации циклов с неизвестным заранее числом повторений используются и другие операторы цикла:
циклы с предусловием - Do While … Loop ,
Do Until … Loop ;
циклы с постусловием - Do … Loop While ,
Do … Loop Until .
Ниже приведен синтаксис этих операторов цикла:
" Цикл с предусловием Do While … Loop
Do While УСЛОВИЕ
БЛОК_ОПЕРАТОРОВ
БЛОК_ОПЕРАТОРОВ
" Цикл с предусловием Do Until … Loop
Do Until УСЛОВИЕ
БЛОК_ОПЕРАТОРОВ
БЛОК_ОПЕРАТОРОВ
" Цикл с постусловием Do … Loop While
БЛОК _ ОПЕРАТОРОВ
БЛОК_ОПЕРАТОРОВ
Loop While УСЛОВИЕ
" Цикл с постусловием Do … Loop Until
БЛОК _ ОПЕРАТОРОВ
БЛОК_ОПЕРАТОРОВ
Loop Until УСЛОВИЕ
Оператор Do W hile…Loop обеспечивает многократное повторение блока операторов до тех пор, пока УСЛОВИЕ соблюдается, а оператор
Другие новости
Эти операторы сравнивают два выражения для определения равны ли они, и если нет то, как они отличаются. Is , IsNot и Like детально обсуждаются на отдельных страницах справки. Отношения операторов сравнения обсуждаются на этой странице.
Result = expression1 comparisonoperator expression2 result = object1 object2 result = string Like pattern
result
Обязательный. Результатом является значение Boolean , представляющее результат сравнения.
expression
Обязательный. Произвольное выражение.
comparisonoperator
Обязательный. Любой оператор сравнения отношения.
object1 , object2
Обязательный. Имя любого ссылочного объекта.
string
Обязательный. Произвольное выражение типа String .
pattern
Обязательный. Любое выражение String или диапазон символов.
В следующей таблице приводится список операторов сравнения и условий, определяющих, является ли result True или False .
Примечание |
---|
При сравнении строк строковые выражения вычисляются на основе их алфавитного порядка сортировки, который зависит от параметра Option Compare . Option Compare Binary задает метод сравнения строк на основе порядка сортировки, определяемого внутренним двоичным представлением символов. Порядок сортировки определяется кодовой страницей. В следующем примере показан типичный порядок двоичной сортировки. A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø Option Compare Text задает метод сравнения строк на основе порядка сортировки текста (без учета регистра), определяемого региональными установками приложения. При установке Option Compare Text и сортировке символов в предыдущем примере применяется следующий текстовый порядок сортировки: (A=a) < (À= à) < (B=b) < (E=e) < (Ê= ê) < (Ø = ø) < (Z=z) Зависимость от языкового стандартаПри установке Option Compare Text результат сравнения строк может зависеть от языкового стандарта, в котором выполняется приложение. Два символа в одном языковом стандарте могут считаться равными, а в другом нет. При использовании сравнения строк для принятия важных решений, например разрешить ли попытку входа в систему, следует учитывать чувствительность к языковым стандартам. Рассмотрите возможность установки Option Compare Binary или вызова , который учитывает языковой стандарт. Использование операторов сравнения с выражениями Object не допускается при Option Strict On . При Option Strict Off и либо выражение expression1 , либо expression2 является Object , типы времени выполнения определяют, как они будут сравниваться. В следующей таблице показано сравнение выражений и результаты сравнения в зависимости от типа операндов, определяемых во время выполнения: При числовом сравнении Nothing приравнивается к 0. При сравнении строк Nothing обрабатывается как "" (пустая строка). Операторы сравнения (< . <= , > , >= , = , <>) могут быть перегружены ; это означает, что класс или структура могут переопределить их поведение, когда операнд имеет тип этого класса или структуры. Если ваш код использует эти операторы для такого класса или структуры, убедитесь, что вы понимаете его переопределенное поведение. Дополнительные сведения см. в разделе |
Обычно операции сравнения используются в операторах организации циклов для принятия какого-либо решения о дальнейшем ходе выполнения операций.
Результатом любой операции сравнения является значение типа Boolean: True, False.
Если оба операнда в выражении сравнения имеют один и тот же тип данных, VBA выполняет простое сравнение для этого типа.
Если оба операнда в выражении сравнения имеют определенные типы и эти типы не являются совместимыми, VBA выдает сообщение об ошибке несовпадения типов.
Если один или оба операнда в выражении сравнения являются переменными типа Variant, VBA пытается преобразовать тип Variant в какой-либо совместимый тип.
Сравнение строк
При сравнении строк операторами отношения, VBA сравнивает каждую строку слева направо посимвольно.
В VBA одна строка равна другой только, когда обе строки содержат точно такие же символы в точно таком же порядке и обе строки имеют одну и ту же длину. Например, строки "абвгд" "абвгд " " абвгд" не равны между собой, т.к. VBA не игнорирует начальные или конечные символы пробела при сравнении строк.
Следует быть внимательным при сравнении строк переменной длины.
Двоичное и текстовое сравнение строк
Для сохранения текста компьютер использует схему, в которой каждый отображаемый символ имеет уникальный номер. Все буквы алфавита имеют свои уникальные номера. Обычно буквы верхнего регистра имеют меньшие номера, чем буквы нижнего регистра. Число, соответствующее определенной букве или символу, называется кодом символа .
При выполнении двоичного сравнения строковой информации VBA использует бинарный эквивалент числа для каждого символа. Такой метод сравнения называется двоичным или бинарным и является методом сравнения по умолчанию.
Т.к. буквы верхнего регистра имеют меньшие двоичные номера, буквы верхнего регистра располагаются в алфавитном порядке перед буквами нижнего регистра. Поэтому при двоичном сравнении строк, строка "АБВ" будем меньше строки "абв".
При текстовом сравнении строк VBA не использует двоичный эквивалент символов, и не "различает" верхнего и нижнего регистра. В текстовом сравнении строка "абв" равна строке "АБВ".
Для выбора метода сравнения строк используется директива Option Compare
Option Compare
Данная директива должна находиться в области объявления модуля.
Конкатенация строк
Присоединение одной строки к другой называется конкатенацией строк .
Конкатенацию строк обычно используют для формирования строк из различных источников в процедуре, чтобы создавать сообщение для вывода на экран. В VBA имеется два оператора для конкатенации строк.
Оператор конкатенации (&)
Оператор (&)в VBA используется только для конкатенации строк.
Синтаксис
Операнд_1 & Операнд_2 [& Операнд_3..]
Операнд_N - любое допустимое строковое или численное выражение (которое преобразуется в строковое).
Тип данных результата конкатенации строк - String.
Если операнд в выражении конкатенации строк имеет значение Empty или Null, VBA интерпретирует этот операнд как строку нулевой длины (строка не содержащая символов).
Обратите внимание! Символ (&) операции конкатенации обязательно необходимо отделять пробелом от имени переменной, т.к. в противном случае VBA может интерпретировать этот символ как символ определения типа Long.
Оператор сложения в конкатенации строк
Для конкатенации строк можно также использовать оператор (+).
Этот оператор имеет такой же синтаксис и требования, как и оператор (&). Однако следует понимать, что в VBA основное предназначение оператора (+) - это арифметическое сложение. Поэтому, чтобы избежать двусмысленности чтения программного кода, для конкатенации строк настоятельно рекомендуется использовать именно оператор (&).
Приоритеты выполнения операций
Многие из выражений в программной коде являются сложными (составными), т.е. состоят из двух или более выражений.
При вычислении сложных выражений VBA следует следующим правилам:
- Части выражения, заключенные в круглые скобки, всегда вычисляются в первую очередь;
- Конкретные операции выполняются в зависимости от иерархии операторов (таблица ниже);
- При равенстве иерархии операторов, они вычисляются слева направо.
Оператор |