Краткие теоретические сведения
Операторы разветвляющейся структуры (принятия решений) позволяют выполнять группы инструкций в зависимости от определенного условия. В VBA для принятия решения используются две инструкции If…Then…Else и Select Case. Инструкция If…Then…Else задает выполнение определенных групп инструкций в зависимости от значения выражения. Ее синтаксис приведен ниже: If Условие Then Инструкции [Else Инструкции_else] Допускается также использование блоковой формы синтаксиса: If Условие Then [Инструкции] [Else Инструкции_else]] End If Или расширенная блоковая форма синтаксиса: If Условие Then [Инструкции] [ElseIf Условие-n Then [Инструкции_ elseif]]… [Else Инструкции_elseif_else]] End If При этом предложении ElseIf…Then может повторяться несколько раз. Синтаксис инструкции If…Then…Else содержит элементы, представленные в таблице 5.1.
Таблица 5.1. Элементы синтаксиса инструкции If…Then…Else
Однострочная форма допускает выполнение нескольких инструкций в результате проверки одного условия If…Then. При этом все инструкции должны находиться на одной строке и разделяться двоеточием, как показано в приведенном ниже примере: Sub TestSub ()
Dim intA As Integer Dim intB As Integer Dim intC As Integer
intA = 5 intB = 10 intC = 12
If intA < 10 Then intA = intA + 3: intB = intB + 7: intC = intB + intA End Sub
Здесь Условие принимает значение True, а переменные intA, intB, intC будут иметь соответственно значения 8, 17, 25. В блоковой форме синтаксиса инструкция If обязательно должна быть первой инструкцией в строке, а End If – последней. Предложения Else и ElseIf являются необязательными. В блоке If допускается любое число предложений ElseIf, но ни одно такое предложение не должно находиться после предложения Else. Ниже представлен пример использования предложения ElseIf: Sub TestSub ()
Dim intA As Integer Dim intB As Integer Dim intC As Integer
intA = 15 intB = 10 intC = 12
If intA < 10 Then intA = intA + 3 intB = intB + 7 intC = intB + intA ElseIf intB > 0 Then intA = intA + 10 intB = intB + 20 intC = intB + intA End If End Sub
В последнем примере Условие в предложении If будет иметь значение False. Поэтому осуществляется переход на строку с инструкцией ElseIf с последующей проверкой условия, которое в данном случае имеет значение True. Это приводит к выполнению расположенных после ElseIf инструкций, в результате чего переменным intA, intB и intC будут присвоены значения, равные соответственно 25, 30 и 55. При выполнении блоковой инструкции If также сначала проверяется Условие. Если оно имеет значение True, то выполняются инструкции, следующие за словом Then. Если же Условие имеет значение False, то при наличии одного или нескольких условий ElseIf выполняется последовательная проверка каждого из них. В случае истинности одного из условий осуществляется выполнение инструкций, следующих за соответствующим предложением Then. В том случае, если ни одно из условий ElseIf не имеет значение True или предложение ElseIf отсутствуют, то выполняются инструкции, следующие за Else.
После выполнения инструкций, следующих за Then или Else, происходит передача управления на инструкцию, расположенную непосредственно за End If. Допускается использование вложенных блоков инструкций If.
Таблица 5.2 Варианты заданий
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|