Управляющие структуры
End Sub
End If
Else
End Sub
Сохраняемые подпрограммы и функции
End Function
End Sub
End Sub
Private Sub ПрограммаУровняМодуля (ByVal Var1)
MsgBox Var1 * GetRand
Private Function GetRand()
GetRand = Int(100 * Rnd())
Сначала программа ВызовПрограммыУровняМодуля вызывает функцию GetRand для генерации случайного целого числа от 0 до 99, а затем передает его в подпрограмму ПрограммаУровняМодуля. Там этот аргумент умножается на результат еще одного обращения к GetRand. Их произведение выводится в информационном окне.
Подпрограмму и функцию можно сделать сохраняемыми. В результате сохраняемыми станут все переменные в этой подпрограмме или функции, как показано в примере.
Sub ВызовСтатическойПодпрограммы()
СтатическаяПодпрограмма
СтатическаяПодпрограмма
Static Sub СтатическаяПодпрограмма()
Dim Var1 As String
If Var1 = "" Then
Var1 = "Var1 ещё не статическая переменная "
Var1 = " Var1 – статическая переменная."
MsgBox Var1
Переменная Var1 определяется и получает значение в программе СтатическаяПодпрограмма. Она является сохраняемой поскольку подпрограмма определена с ключевым словом Static. Программа СтатическаяПодпрограмма вызывается дважды, оба раза выводит на экран информационное окно, где во второй раз подтверждает, что значение Var1 действительно сохранилось.
|
|
Управляющие структуры VBA эквивалентны подобным структурам в других языках программирования, за исключение инструкции For-Each-Next.
Ниже перечислены основные управляющие структуры VBA.
If-Then-Else | Выполняет группу инструкций, если соблюдено некоторое условие |
Select Case | В зависимости от значения некоторой переменной или результата проверки условия выполняет одну из нескольких возможных групп инструкций |
For-Next | Выполняет группу инструкций заданное число раз |
For-Each-Next | Выполняет действие над каждым объектом семейства или элементом массива |
While-Wend | Выполняет группу инструкций, пока соблюдается некоторое условие |
Do-Loop | Выполняет группу инструкций, пока соблюдается или не соблюдается некоторое условие |
Функционально они делятся на две группы:
§ перехода и выбора (GoTo, If-Then-Else, Select Case)
§ повтора (For-Next, While-Wend, Do-Loop, For-Each-Next)
Рассмотрим подробнее действие этих структур.
Условная инструкция If-Then-Else изменяет порядок выполнения программы в зависимости от результатов проверки некоторого условия.
Sub IfThenElse()
Dim Num1 As Integer
Num1 = GetRandomNumber
If Num1 = 7 Then
MsgBox "Поздравляю! Вы выиграли! Выпало число " &
Num1 & "."