Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция_VBA.doc
Скачиваний:
12
Добавлен:
27.03.2016
Размер:
164.35 Кб
Скачать

8.10.4 Операторы управления

К операторам управления относятся 2 типа операторов:

1. перехода и выбора (Goto, If – Then – Else и Select Case);

2. повтора (For – Next, For Each, Do – Loop, While – Wend).

Оператор перехода имеет вид:

Goto метка, где метка – это цифровая комбинация, стоящая ещё и перед оператором, на который нужно перейти. В современных программах его стараются не использовать.

Условный оператор If относится к операторам выбора.

У него несколько конструкций. Он может быть в виде простой или блочной структуры.

1. If условие Then [инструкция] [Else инструкция Else] – простая структура If (в [] заключена необязательная часть оператора).

Примеры:

А) If Сумма > 1000 then Скидка = 0.05 Else Скидка = 0

Б) If Сумма > 1000 then Скидка = 0.05

2. If Условие then [инструкция ] [Else (инструкция Else) End if]

Примеры:

А) If Сумма> 1000 then Скидка = 0.05 Else скидка = 0 End If

Б) If сумма >1000 then Скидка = 0.05 End If

3. If условие1 then

[блок инструкций 1]

ElseIf Условие2 then

[блок инструкций 2] блочная структура If

Else [блок инструкций Else] End If

Блок - это последовательность операторов одной строки, разделенная “двоеточием”.

Пример. Определение, какому интервалу принадлежит число:

X= InputBox (“Введите число”)

If X >0 and X<=1 then MsgBox “Число из интервала [0,1]”

ElseIf X >1 And X< =2 then MsgBox “Число из интервала (1,2]”

Else MsgBox “Число либо отрицательное, либо>2” : End If

Разновидность простого оператора имеет вид:

If <выражение> Then <оператор>

Если условие истинно в любой конструкции оператора, то выполняется простой или составной оператор, следующий за Then. Рассмотрим пример.

Пример:

If AvgPrice>12000 Then

DiffPrice = Full(234, 45600)

ElseIf AvgPrice>24000 Then

DiffPrice = Full(12000, 45000)

ElseIf AvgPrice>36000 Then

DiffPrice = Full(24000, 50000)

Else DiffPrice = Full(36000, 70000

End If

Оператор выборки Select Case также относится к операторам перехода. Он используется реже оператора If.

Он имеет вид:

Select Case <величина>

Case <сравнение 1>

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

Case <сравнение 2>

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

Case Else

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

End Select

Пример:

Select Case Demse

Case Demse 21

Dem=21

Case Demse 22;25;28

Dem=31

Case Demse 45 To 48

Dem=41

Case Else

Dem=51

End Select

Есть ещё функции выбора, которые возвращают одну из альтернатив:

1. IIf ( Expr, Truepart, FalsePart)

Expr – проверяемое выражение.

Truepart – значение или выражение, возвращаемое, если Expr – истина.

FalsePart - значение или выражение, возвращаемое, если Expr – ложь.

2. Choose (index, chooce1[,chooce2…] возвращает значение, выбранное из списка параметров index, лежит в интервале [1 … число элементов в списке].

3. Switch (Expr1, value1, Expr2, value2…)

expr – выражение типа variant.

value – возвращаемое значение, если соответствующее expr – истина.

Пример 2:

Число = InputBox(«Введите целое число»)

Select Case Число

Case 1: MsgBox “Число равно 1”

Case 2, 3: MsgBox “Число равно 2 или 3”

Case 4 to 6: MsgBox “Число от 4 до 6”

Case Is>=7: MsgBox “Число не менее 7”

End Select

Пример 3.

Идентификация нажатой клавиши.

Private Sub UserForm_KeyDown (byval keykode As MsForm. _ ReturnInteger, byval Shift As Integer)