Синтаксис языка VBA (часть 2)

advertisement
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
Download