Изменение порядка выполнения операторов

Рассмотренные операторы производятся в линейном порядке. При использовании VBA-операторов изменение порядка выполнения операторов определяется условием либо набором критерий, при которых VBA делает ту либо иную ветвь кода процедуры.

Оператор условного перехода – это структура, которая выбирает ту либо иную ветвь кода процедуры на базе некого предопределенного условия либо группы критерий Изменение порядка выполнения операторов.

Оператор бесспорного перехода – это оператор, просто изменяющий последовательность выполнения кода процедуры независимо ни от какого определенного условия. Условный переход употребляется еще почаще, чем бесспорный.

Простейшими VBA-операторами конфигурации порядка выполнения кода являются операторы If … Then и If … Then … Else.

Оператор If … Then позволяет избрать единственную альтернативную ветвь кода Изменение порядка выполнения операторов в процедуре либо функции.

Синтаксис:

If условие Then оператор(ы),

где условие – хоть какое логическое выражение;

оператор(ы) – один, несколько либо ни 1-го оператора VBA.

2-ая форма синтаксиса оператора If … Then именуется блоком оператора if. В блоке оператора If… Then условие и операторы записываются в отдельных строчках, при этом завершается данный оператор Изменение порядка выполнения операторов ключевиками End If.

Синтаксис:

If условие Then

оператор 1

оператор 2

….

Оператор n

End If

Выбор одной из 2-ух разных веток операторов зависимо от определенного условия обеспечивает оператор

If … Then … Else

и If … Then … ElseIf.

Синтаксис однострочного оператора If … Then … Else:

If условие Then оператор1 Else оператор2,

где условие – хоть какое допустимое логическое выражение Изменение порядка выполнения операторов;

операторы – один либо несколько операторов VBA, которые должны находиться в одной и той же строке.

Блок операторов If … Then … Else легче читать и осознавать, и так как можно располагать операторы в различных строчках снутри блока оператора If … Then … Else, он не имеет ограничения по размеру и числу операторов, которые Изменение порядка выполнения операторов можно помещать в другие ветки.

Синтаксис:

If условие Then

Оператор1

Else

Оператор2

End If

VBA, как и многие языки программирования, имеет условный оператор перехода для использования в случаях, когда нужно выбирать из большего количества разных веток кода: оператор Select Case. Данный оператор работает почти во всем так же, как и оператор If. Ключевики Изменение порядка выполнения операторов Select Case употребляются со многими операторами Case, где каждый оператор Case инспектирует возникновение другого условия и производится только одна из веток Case. Ветвь Case может содержать один, несколько либо ни 1-го оператора 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 – (каждый) представляет один, несколько либо ни 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

В данной программке переменной а присвоено значение меньше нуля, как следует, должна выполниться нижняя аннотация If (рис. 9).


Рис. 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


izlishek-potrebitelya.html
izlishnij-kontrol-vedyot-k-ego-otsutstviyu.html
izlozhenie-chislennogo-metoda.html