Офисное программирование
Шрифт:
операторы – один или несколько операторов VBA, которые должны находиться в одной и той же строке.
Блок операторов If … Then … Else легче читать и понимать, и поскольку можно располагать операторы в разных строках внутри блока оператора If … Then … Else, он не имеет ограничения по размеру и числу операторов, которые можно помещать в альтернативные ветви.
Синтаксис:
If условие Then
Оператор1
Else
Оператор2
End If
VBA, как и многие языки программирования, имеет условный оператор
Синтаксис:
Select Case выражение
Case условие_1
Оператор_1
Case условие_2
Оператор_2
…..
Case условие_N
Оператор_N
[Case Else
Оператор_N+1
End Select,
где выражение – любое численное или строковое выражение;
условие_1, условие_2, условие_N – (каждый) представляет список логических выражений, отделенных запятыми;
оператор_1, оператор_2, оператор_N, оператор_N+1 – (каждый) представляет один, несколько или ни одного оператора.
В Select Case можно включать столько операторов Case условия, сколько необходимо.
Примечание. Написание неоднострочных операторов в программах производится именно так (в столбец), либо редактор будет выдавать ошибку написания.
Оператор безусловного перехода всегда изменяет порядок выполнения операторов в процедуре или функции vba. При этом vba не проверяет никаких условий, а просто переходит к выполнению кода с другого места.
Оператор GoTo имеет следующий синтаксис:
GoTo метка
Метка – любое обозначение или номер строки в той же процедуре или функции, которая содержит оператор GoTo. При выполнении оператора GoTo VBA немедленно переходит к выполнению оператора в строке, определенной с помощью метки.
Пример 3. Создать программу, которая, используя инструкцию if … then, выполняет следующие действия: если переменной а присваивается значение больше нуля, то находится сумма чисел а и b, если меньше нуля, то находится произведение. Результат выводится в стандартное диалоговое окно msgbox.
Технология выполнения
1. В документе Операции (пример 2) выделите правой кнопкой мыши папку Modules и выполните команду: Insert + Module (рис. 6).
2. В появившемся модуле пропишите программу и запустите на выполнение.
Dim a, b, c As Integer
Sub poradok
a = -5
b = 25
If a > 0 Then
c = a + b
MsgBox (c)
End If
If a < 0 Then
с = a * b
MsgBox (с)
End If
End Sub
В
Рис. 9. Результат работы при а < 0
3. Измените программу, поменяв значение а на положительное:
Dim a, b, c As Integer
Sub poradok
a = 5
b = 25
If a > 0 Then
c = a + b
MsgBox (c)
End If
If a < 0 Then
c = a * b
MsgBox (c)
End If
End Sub
Примечание. Данную программу можно составить, используя полный блок инструкции If Then Else (рис. 10).
Рис. 10. Результат работы при а > 0
Dim a, b, c As Integer
Sub poradok
a = 5
b = 25
If a > 0 Then
c = a + b
MsgBox (c)
Else
c = a * b
MsgBox (c)
End If
End Sub
Процесс выполнения всех операторов, заключенных в структуру цикла, один раз называется итерацией (iteration) цикла. Некоторые структуры цикла организуются так, что они всегда выполняются заданное количество раз. Структуры цикла, всегда выполняющиеся заданное количество раз, называются циклами с фиксированным числом итераций (fixed iteration). Другие типы структур цикла повторяются переменное количество раз в зависимости от некоторого набора условий. Поскольку количество раз повторений этих гибких структур цикла является неопределенным, такие циклы называются неопределенными циклами (indefinite loops).
Существуют два основных способа создания неопределенного цикла. Можно построить цикл так, что VBA будет тестировать некоторое условие (детерминант цикла) перед выполнением цикла. Если условие для повторения цикла не равно True, VBA пропускает все операторы в цикле. Можно также построить цикл таким образом, что VBA будет тестировать условие детерминанта цикла после выполнения операторов в цикле.
Самой простой структурой цикла является фиксированный цикл. VBA предоставляет две различные структуры фиксированного цикла: For… Next и For Each … Next. Обе структуры фиксированного цикла называются циклами For, потому что они всегда выполняются для (for) заданного количества раз.