Синтаксис
Инструкция Select Case
Select Case <выражение для проверки> Case < список 1>
<блок операторов 1>
Case <список 2>
<блок операторов 2>
………..
Case Else
<блок операторов п>
End Select
Параметр выражение для проверки — любое числовое или строковое выражение, в зависимости от значения которого выполняется соответствующий блок операторов. Параметры список 1, список 2 и т. д. — это списки выражений, записанных в следующих формах:
выражение [, выражение... ], например Case 1, 3, 5, 7, 9;
Case a, b, с, d
выражение То выражение, например: Case 5 То 13; Case a To d
Is операция отношения, например:
Case Is<20; Case Is <>a В списках могут быть использованы различные формы записи, например:
Case 2, 5, 8 То 15. 18, 25 То 30, Is >50
Sub testsub1()
Dim sngналог As Single, intпараметр, sngсумма
intпараметр = Val(InputBox("введите целое число:"))
sngсумма = Val(InputBox("введите число:"))
Select Case intпараметр
Case 0
sngналог = sngсумма * 0
Case 1
sngналог = sngсумма * 0.05
Case 2
sngналог = sngсумма * 0.1
Case 3
sngналог = sngсумма * 0.15
Case 4
sngналог = sngсумма * 0.2
Case Else
sngналог = sngсумма * 0
End Select
MsgBox "sngналог=" & sngналог
End Sub
В этом примере осуществляется выбор ставки налога (0; 0,05; 0,10; 0,15; 0,20) в зависимости от значения выражения intпараметр. Предусмотрен также вариант
выбора, когда значения выражения intпараметр не совпадают ни с одним выражением в предложениях Case.
Существует еще одна инструкция безусловного перехода Go to, которая в общем виде записывается так:
Go to Метка.
Метка это идентификатор с двоеточием, стоящий перед инструкцией, которая должна быть выполнена после инструкции Go to.
Пример 1 написать программу вычисления , если введен правильный пароль.
Sub pparol()
Dim parol, x, y
finish:
parol = (InputBox("введите пароль"))
If parol <> "nataly" Then 'nataly правильный пароль
MsgBox "неверный пароль, доступ запрещен"
GoTo finish
End If
x = Int(Rnd * 10 + 1): y = x ^ 0.5
MsgBox "x=" & x & "y=" & y
End Sub
Sub pr42()
'Ввести три любых числа, сумму двух чисел поделить на третье, сделать проверку, что в знаменателе число <>0.
Dim x, y, sum, z
x = Val(InputBox("введите x:"))
y = Val(InputBox("введите y:"))
1: z = Val(InputBox("введите z:"))
If z <> 0 Then
sum = (x + y) / z
ElseIf z = 0 Then
MsgBox "введен ноль"
GoTo 1
End If
MsgBox "sum=" & sum
End Sub
Лекция 3