IV. Операции и Операторы • • • • • Арифметические операции Операции отношения Логические операции Сложение строк Оператор комментария, разделитель между операторами, перенос оператора • Оператор присваивания • Операторы циклов • Операторы принятия решения Операции и Операторы Арифметические операции Символ Назначение операции Пример записи ^ Возведение в степень 2^2, A^4 - Изменение знака операнда -d + Сложение двух операндов 3+4, AB+H - Вычитание двух операндов 4-1, F-8 * Умножение двух операндов A*n / Деление двух операндов W/3 Операции и Операторы Операции отношения Символ Назначение операции Пример записи = Равно A=B <> Не равно A <> B < Меньше A<B > Больше A >B <= Меньше или равно A <= B >= Больше или равно A => B Операции и Операторы Логические операции • OR – Логическое сложение (ИЛИ) Операнд1 Операнд2 Результат TRUE FALSE TRUE TRUE TRUE TRUE FALSE TRUE TRUE FALSE FALSE FALSE • AND – Логическое умножение (И) Операнд1 Операнд2 Результат TRUE FALSE FALSE TRUE TRUE TRUE FALSE TRUE FALSE FALSE FALSE FALSE • NOT – Логическое отрицание (НЕ) NOT TRUE = FALSE NOT FALSE = TRUE Операции и Операторы Сложение строк <&> - Сложение строк (амперсант) П Public Sub ExampleSub() Dim Строка1 as String Dim Строка2 as String, Строка3 as String Строка1 = “Менеджер” : Строка2 = “по продажам” Строка3 = Строка1 & Строка2 End Sub Результат: Строка3 Менеджер по продажам Операции и Операторы Оператор комментария, разделитель между операторами, перенос оператора • <‘> - Оператор комментария (апостроф) П A = 1 ‘ комментарий к строке оператора • <:> - Разделитель между операторами (двоеточие) П A = 1 : B=5 • <пробел_> - Перенос оператора П IF A < 5 then _ B = A*3 + (C-6)/(D-4)*8 Операции и Операторы Оператор присваивания С [LET] <Имя переменной> = <выражение> Значение выражения может быть присвоено только в том случае, если типы переменной и выражения совместимы. Например, нельзя присвоить числовой переменной значение выражения, которое является строкой. П 1 Dim a As Integer Dim стр As String LET стр = “компьютер” а=5:a=a+4 2 Dim a As Integer Dim стр As String стр = “компьютер” а = “монитор” Операции и Операторы Оператор With Оператор With избавляет программиста от утомительной обязанности использовать большое количество повторений имени одного и того же объекта при работе с его свойствами и методами. П 1 LstCategory.ColumnCount = 3 LstCategory.ListFillRange = “A1:A5” LstCategory.Text = “телефон” With LstCategory .ColumnCount = 3 2 .ListFillRange = “A1:A5” .Text = “телефон” End With Операции и Операторы Операторы циклов Циклы применяются для многократного выполнения команд, находящихся в теле цикла. •For - Next •For Each •While - Wend •Do - Loop Операции и Операторы Цикл For - Next Цикл For-Next повторяет выполнение группы команд указанное число раз. С П 1 For <Счетчик> = <Начало> To <Конец> [Step <Шаг>] [Команды] [Exit For] [Команды] Next [Счетчик] Sub Summa() Public Sub Mass() Dim Array1(1 To 5, 0 To 4) As Long Dim I As Integer, Sum As Integer For I =1 To 5 For I = 0 To 10 J = 0 To 4 2 ForArray1(I, Sum = Sum + I J) = I + J Next I Next J MsgBox Sum Next I End Sub End Sub Операции и Операторы Цикл For Each Цикл For Each повторяет выполнение группы команд для каждого элемента массива или коллекции. С П 1 For Each <Элемент> In <Группа> [Команды] [Exit For] [Команды] Next [Элемент] Private Sub Summa4() Dim Mass(1 To 6) As Integer, Sum As Integer Dim c As Integer For c = 1 To 6 Mass(c) = c Next c For Each c in Mass Sum = Sum + c Next c End Sub Sub Summa1() Dim c As WorkSheet 2 For Each c in WorkSheets c.Visible = True Next c End Sub Операции и Операторы Цикл While - Wend С Цикл While - Wend выполняет последовательность команд, пока заданное условие имеет значение True. I = 0 : Sum = 0 While <Условие> П While I <= 10 [Команды] Sum = Sum +I Wend Wend Цикл While – Wend в отличие от For – Next работает не заданное число раз, а пока выполняется условие. Операции и Операторы Цикл Do - Loop Цикл Do - Loop повторяет выполнение набора команд, пока условие имеет значение True (случай While) или пока оно не примет значение True (случай Until). С 1 Do [{While | Until} Условие] [Команды] [Exit Do] [Команды] Loop 2 Do [Команды] [Exit Do] [Команды] Loop [{While | Until} Условие] Операции и Операторы Цикл Do - Loop П 1 I=9 Sum = 0 Do While I <= 11 Sum = Sum + I If I > 10 Then Exit Do Loop 3 I=8 Sum = 0 Do Sum = Sum + I I=I+1 Loop Until I > 10 2 I=9 Sum = 0 Do Until I <= 10 Sum = Sum + I I=I+1 Loop Операции и Операторы Операторы принятия решения Операторы принятия решения позволяют выполнять группы команд в зависимости от значения выражения. В VBA для принятия решения используются два оператора: • If – Then – Else • Select Case Операции и Операторы Оператор If – Then - Else С If <Условие> Then [Команда] [Else Команда_else] Если Условие принимает значение True, то выполняется Команда, если False, то Команда_else. Ветвь Else является необязательной. П If Сумма > 1000 Then Скидка = 0.05 Else Скидка = 0 Операции и Операторы Оператор If – Then - Else Допускается также использование блочной формы синтаксиса: С If <Условие> Then [Команды] [Else Команды_else] End If П If Сумма > 1000 Then Скидка = 0.05 Else Скидка = 0 End If Операции и Операторы Оператор Select Case Выполняет одну из нескольких групп команд, в зависимости от значения выражения. С Select Case <Выражение> [Case СписокВыражений-1 [Команды-1]] … [Case СписокВыражений-n [Команды-n]] [Case Else [Команды-Else]] End Select Операции и Операторы Оператор Select Case П П СписокВыражений: 1 To 5, 8, 9, Is > 15 Число = InputBox(“Введите целое число”) Select Case Число Case 1 MsgBox “Число равно 1” Case 2, 3 MsgBox “Число равно 2 или 3” Case 4 To 6 MsgBox “Число от 4 до 6” Case Is >= 7 MsgBox “Число не менее 7” End Select