Операторы языка VBA
Оператор присваивания
Оператор присваивания в VBA обозначается одним знаком равно =.
Операторы ветвления. VBA поддерживает следующие конструкции операторов ветвления. IF < условие > THEN < оператор >
Позволяет выполнить один или несколько операторов, если условие истинно. Можно использовать однострочный или блочный вариант. Если необходимо выполнить более одной строки кода, нужно использовать блочный вариант с оператором End IF.
Синтаксис: IF < условие > Then < оператор (код) > IF < условие > Then < блок кода > End IF
Примеры: IF x <5 Then f = 1
End IF
IF <условие> THEN <оператор 1> ELSE <оператор 2> End IF
Позволяет определить два блока операторов. Первый выполняется, когда условие истинно, а второй, когда оно ложно.
Пример: If d >= 0 Then x1 = (-b+sqrt(d))/(2*a)
x1 = (-b+sqrt(d))/(2*a)
Else f=0 End IF
Пример ветвления по трём и более направлениям: IF < условие 1 > Then < блок кода 1 > ElseIF < условие 2 > Then < блок кода 2 > ElseIF < условие 3 > Then < блок кода 3 > Else < блок кода 4> End IF
В блоке IF допускается любое количество предложений ElseIF, но ни одно не может находиться после предложения Else.
Пример: IF x = -1 Then y = 2 ElseIF x = 0 Then y = 0 ElseIF x = 1 Then y = 1 Else y = x*x End IF
Циклы используются для организации повторного выполнения блоков кода. Любой цикл состоит из двух частей: условие цикла и тело цикла. У любого цикла есть параметр. Параметр цикла – это переменная, которая изменяется в теле цикла, а также участвует в условии его окончания.
DO … LOOP Позволяет выполнить блок кода неопределенное количество раз. Существует несколько вариантов этого оператора, но в каждом из них проверяется условие и по результатам проверки определяется необходимость продолжения цикла. Условие должно быть значением или выражением, которое может быть True или False.
Циклы с предусловием
DO WHILE <условие> … LOOP Оператор DO WHILE <условие> … LOOP позволяет проверить условие перед началом цикла и выполнять цикл до тех пор, пока оно имеет значение True. Как только условие цикла примет значение False, выполнение цикла прекратится.
Пример: Dim X As Integer ‘Описание переменной X целого типа. X = 200 ‘Начальное значение переменной X. DO WHILE X >0 ‘Пока Х > 0, цикл будет повторятся. X = X \10 ‘Изменение значения переменной Х. LOOP ‘Конец цикла. DO UNTIL <условие> … LOOP Оператор Do Until <условие> … Loop позволяет проверить условие перед началом цикла и выполнять цикл до тех пор, пока оно False. Как только условие цикла станет равно True, выполнение цикла прекратится.
Пример: Dim X As Integer ‘Описание переменной X целого типа. X = 300 ‘Начальное значение переменной X. Do Until X =0 ‘До тех пор, пока Х <= 10, цикл повторяется. X = X \2 ‘Изменение значения переменной Х. Loop ‘Конец цикла.
Циклы с постусловием
DO … LOOP WHILE <условие> Если операторы цикла необходимо выполнить хотя бы раз, то нужно применять цикл с постусловием.
Инструкция Do … Loop While <условие> позволяет проверить условие после выполнения операторов тела цикла.
Цикл будет повторяться до тех пор, пока выражение в условии цикла имеет значение True. Как только условие цикла примет значение False, выполнение цикла прекратится.
Пример: Dim X As Integer X = 0 Do X = X + 2 Loop While X <= 100 ‘До тех пор, пока Х <= 10, цикл повторяется DO … LOOP UNTIL <условие> В отличие от предыдущего этот цикл будет выполняться до тех пор, пока значение условия равно False.
Пример: Dim X As Integer X = 0 Do X = X + 2 Loop Until X > 20 ‘Как только переменная станет больше десяти, выполнение цикла прекратится.
Цикл по счетчику (безусловный цикл)
FOR … NEXT Цикл с определенным количеством повторений. Цикл выполняется от начального до конечного значения параметра с заданным шагом.
Пример:
Dim X As Integer
X=0
For I = 1 To 10 Step 1 ‘повторять цикл от 1 до 5 с шагом 1.
X=X+I
Next I ‘конец цикла.
Exit For или Exit Do – досрочный выход из цикла.
Сложные (вложенные) циклы
Совокупность простых циклов, вложенных один в другой, называется сложным (вложенным) циклом. При конструировании сложных циклов необходимо руководствоваться следующими правилами: - нельзя войти во внутренний цикл, минуя вход внешнего цикла; - имена параметров простых циклов не должны повторяться в конструкции сложного цикла; - простые циклы не должны пересекаться в конструкции сложного цикла, то есть окончание внешнего цикла не должно предшествовать окончанию внутреннего цикла.
Примеры: For i = 1 to n For j = 1 to m A(i , j) = i+j Next j Next i
5> |