Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MVBA_2000.DOC
Скачиваний:
13
Добавлен:
08.11.2019
Размер:
599.55 Кб
Скачать

2.6. Управляющие конструкции vba

Управляющие конструкции включают операторы ветвления и цикла. Ветвление организуется с использованием условного оператора и оператора выбора.

2.6.1.Условный оператор if

Для проверки одного условия и выполнения оператора или блока операторов используется оператор IF…THEN. Этот оператор можно использовать с разным синтаксисом: однострочным (линейным) и многострочным (блочным).

а) Однострочный:

If <условие> Then <оператор>

б) блочный:

If <условие> Then

<блок операторов>

End If

Для проверки одного условия и выбора одного из двух блоков операторов используется оператор вида If…Then… Else.

If <условие> Then

<блок операторов1>

Else

<блок операторов2>

End If

Для проверки более одного условия и выполнения одного из нескольких блоков операторов используется оператор вида If… Then…ElseIf

If <условие 1> Then

<блок операторов 1>

ElseIf <условие 2> Then

<блок операторов 2>

…………….

ElseIf<условие n> Then

<блок операторов n>

Else

<блок операторов Else>

End If

В качестве условия можно использовать логическое выражение, возвращающее значение True (Истина) или False (Ложь), или любое арифметическое выражение (нулевое значение эквивалентно False, а ненулевое – True).

Пример 2.3. Использование условного оператора If.

Sub pr23()

a = InputBox("Введите число")

x = Val(a)

If Val(a) <> 0 Then

y = 150 / x

k = MsgBox(y)

Else

MsgBox ("Деление на ноль")

End If

End Sub

2.6.2.Оператор выбора Select Case

Используется для проверки одного условия и выполнения одного из нескольких блоков операторов.

Формат записи оператора:

Select Case проверяемое выражение

Case список выражений 1

операторы 1

Case список выражений 2

операторы 2

Case список выражений 3

операторы 3

……………………………….

Case Else

операторы группы Else

End Select

Проверяемое выражение вычисляется в начале работы оператора Select Case. Это выражение может возвращать значение любого типа (логическое, числовое, строковое).

Список выражений – одно или несколько выражений, разделенных стандартным символом –разделителем(;).

При выполнении оператора проверяется, соответствует ли хотя бы один из элементов этого списка проверяемому выражению. Эти элементы списка выражений могут иметь одну из следующих форм:

  • выражение

  • выражение 1 To выражение 2

  • Is логический оператор(оператор сравнения) выражение

Например, Is >= 10

Пример 2.4. Использование оператора Select Case.

Sub pr24()

Dim acode

acode = InputBox("Введите код")

Select Case acode

Case "095"

gorod = "Москва"

Case Is = "812"

gorod = "Санкт-Петербург"

Case "044"

gorod = "Киев"

Case Else

gorod = "Ошибка в коде"

End Select

MsgBox (gorod)

End Sub

2.6.3.Оператор цикла For … Next

В VBA существуют три циклические конструкции операторов:

  1. For … Next

  2. Do … Loop

  3. While … Wend

Оператор цикла For…Next имеет две разновидности:

  1. For счетчик = начало To конец [Step приращение]

операторы

Next [счетчик]

б) For Each <элемент> In <группа>

операторы

Next [элемент]

где:

элемент- переменная, используемая для ссылки на элементы коллекции однородных объектов (семейства);

группа – имя коллекции (семейства).

Оператор данного вида используется для обработки объектов, составляющих коллекцию однородных объектов, т.е. многократно выполняет одну и ту же группу операторов для каждого элемента набора объектов (массива).

Пример 2.5. Использование оператора цикла For … Next.

Sub pr25()

Dim b(10)

s = 0

For i = 1 To 10

b(i) = InputBox("Введите число")

s = s + Val(b(i))

Next

MsgBox s

End Sub

Пример 2.6. Использование оператора цикла For Each ... Next.

Sub pr26()

For Each k In ActiveSheet.Range( “B2:F12” ).Cells

If k.Value<0 Then

k.Value = 0

End If

Next k

End Sub

Программа перебирает ячейки диапазона B2:F12 на активном листе и обнуляет ячейки с отрицательными значениями (Excel).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]