- •8. Visual basic for applications
- •8.1. Основные понятия языка vba
- •Свойства – это атрибут объекта, определяющий его характеристики: размер, цвет, положение на экране или состояние (доступность, видимость). Для изменения характеристик меняют его свойства:
- •8.2. Создание функций пользователя
- •8.3. Встроенные типы данных
- •8.4. Переменные
- •8.5. Массивы переменных
- •8.6. Объявление констант
- •8.7. Операции языка vba
- •8.8.Встроенные функции vba
- •8.10.4 Операторы управления
- •Select Case KeyKode
- •End Select
- •8.10.5. Операторы повтора
- •Dim a As Variant
- •MsgBox “Победили на броске” & cStr(Бросок)
- •1 Вариант:
- •2 Вариант:
- •8.11. Встроенные диалоговые окна
- •8.11.1. Окно ввода информации
- •8.11.2. Встроенные диалоговые окна для обмена сообщениями
- •MsgBox ((Prompt[,Buttons] [,Title] [,Helpfile, Context])
- •8.11.3. Диалоговые окна пользователей
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)