- •Часть VI
- •Глава 6.1 Создание приложений с помощью vba Возможности Visual Basic
- •Редактор Visual Basic (vbe)
- •Управление проектами в vbe
- •Глава 6.2 Основы программирования на ув6 Работа с переменными
- •Использование констант
- •Типы данных Object и Variant
- •Простейшие конструкции и операторы
- •Конструкции управления
- •Разновидности циклов
- •Работа с массивами
- •Работа со строками
- •Работа с датой и временем
- •Пользовательские процедуры и функции
- •Sub название процедуры (параметры) операторы
- •Function название функции (параметры) [As тип] операторы
- •Работа с записями
- •Работа с файлами
- •Input(число, номер)
- •Глава 6.3 Объектные модели
- •Объектная модель vba
- •Объектная модель Microsoft Office 2000
- •Объектная модель Microsoft Word 2000
- •Объектная модель Microsoft Excel 2000
- •Объектная модель Microsoft Access 2000
Конструкции управления
Зачастую в определенном месте программы необходимо выполнять те или иные операторы, в зависимости от некоторых условий. Эта возможность в Visual Basic реализуется при помощи так называемых управляющих конструкций (или структур), которые в свою очередь состоят из структур принятия решений и циклов. Ниже приводится подробное описание двух существующих конструкций принятия решений.
Конструкция If ...Then. Существует несколько разновидностей данной структуры. Если при выполнении какого-либо усло-
434
вия необходимо выполнять один оператор, то нужно использовать конструкцию следующего вида:
If условие Then оператор
В том случае, когда результатом проверки условия является значение True (Истина), то выполняется оператор, находящийся после служебного слова Then. С другой стороны, если после проверки условия было получено значение False (Ложь), то выполнится следующий по порядку оператор. Все описанные параметры данной структуры должны быть указаны в одной строке.
Если при выполнении условия требуется выполнил, не один, а несколько операторов, то следует использовать такую конструкцию:
If условие Then Операторы End If
В случае истинности проверяемого условия будут выполнены операторы, расположенные после ключевого слова Then. С другой стороны, если условие является ложным, то выполняется следующий после данной конструкции оператор. В том случае, когда в блоке операторы находится только один оператор, то данная структура все равно должна заканчиваться служебным словосочетанием End If.
При необходимости выполнения того или иного оператора (или блока операторов), в зависимости от результата проверки определенного условия, в языке Visual Basic следует использовать следующую конструкцию:
If условие Then
операторы1 Else
операторы2
End If
или
If условие Then операторы1 Else: операторы2
End If
435
Если результатом проверки условия является значение True, то будет выполнен блок операторы1, находящийся после ключевого слова Then. С другой стороны, если проверка условия дала результат False, то будет выполнен блок операторы2, расположенный после служебного слова Else.
Во втором из приведенных вариантов в качестве блока операторы2 может использоваться как один оператор (тогда он записывается после знака «:» в той же строке, что и служебное слово Else), так и несколько (при этом каждый оператор, начиная со второго, записывается в отдельной строке).
В том случае, когда определенное действие (или набор действий) нужно выполнять после проверки не одного, а нескольких условий, на языке Visual Basic следует использовать такую управляющую структуру:
If условие1 Then
операторы1 Elself условие2 Then
операторы2
[Else
onepaтopы N] End If
Если условие1, находящееся после ключевого слова If истинно, то выполняется блок операторы1, расположенный после Then. Если же оно ложно, то осуществляется проверка условия2, находящегося после служебного слова Elself, в случае его истинности выполняется блок операторы2 и т. д. Если ни одно из этих условий не является истинным, то есть результатом всех проверок является значение False, то выполняется блок операторыN, расположенный после ключевого слова Else (данный блок является необязательным).
В дополнение к приведенной выше структуре If ...Then следует также рассмотреть функцию llf, которая возвращает одно из двух значений, в зависимости от проверяемого условия. Синтаксис данной функции имеет такой вид:
IIf(условие, значение1, эначение2)
436
В том случае, когда результатом проверки условия является значение True, функция возвращает значение1, а когда проверка дает значение False, то возвращаемый результат - значение2. Например:
Dim intA As Integer, strA As String
intA = 6
strA = IIf(intA Mod 2 = 0, _
"Четное", "Нечетное")
Если число intA делится на 2 без остатка, то строке strA будет присвоено значение "Четное", в противном случае -"Нечетное".
Конструкция Select Case. Когда существует несколько операторов (или блоков операторов), которые необходимо выполнять в случае истинности того или иного условия, то запись конструкции If...Then окажется достаточно громоздкой. Поэтому в подобных случаях следует использовать структуру Select Case, которая улучшает читаемость программы. Ее общий вид выглядит следующим образом:
Select Case переменная Case значени1
операторы1 Case значение2
операторы2
[Case Else
операторыN] End Select
Если переменная содержит значение1, расположенное после первого по порядку ключевого слова Case, то выполняется блок оператор1. С другой стороны, если содержимое переменной равно значению2, то выполняется блок операторы2 и т. д. Когда содержимое переменной не равно ни одному из приведенных значений, то выполняется блок операторы N, находящийся после служебного словосочетания Case Else, которое является необязательным в рассматриваемой конструкции.
437
В том случае, когда при нескольких значениях переменной необходимо выполнять один и тот же оператор (блок операторов), то список этих значений нужно указать после ключевого слова Case, разделяя их запятыми. Например:
Select Case x Case I
x = x + 1
Case 2, 3, 4
x = 10 Case Else
x = 20 End Select
