Для решения поставленной задачи удобно использовать оператор выбора Select Case. Синтаксис оператора Select Case:
Select Case селектор
Case 1-й установленный диапазон значений селектора: оператор 1
Case 2-й установленный диапазон значений селектора: оператор 2
-----------------------------------------------
Case n- й установленный диапазон значений селектора: оператор n
Case Else: оператор n+1
End Select
Селектор – переменная, значение которой до входа в оператор Select Case должно быть известно. Если это значение совпадает с 1-м установленным заранее диапазоном значений, то выполняется оператор 1 и управление передается на End Select. Если значение не совпадает, происходит сравнение со вторым диапазоном и т.д.
|
Запишем процедуру отклика командной кнопки CommandButton1 для решения данной задачи:
|
|
Private Sub CommandButton1_Click()
Dim x, y As Single 'Объявление типов переменных Х и Y
x = Val(InputBox(" Введите значение х ")) ' Ввод текущего значения Х
Select Case x ' Начало оператора Select Case
Case 1,3,5,6: y=sin(x)
Case 8 to 10: y=Tan(x)
Case 15 to 20: y=Log(x)
Case is >30: y=x^2.5
Case Else: y=0 ' В остальных случаях
End Select ' Конец оператора Select
MsgBox “y=” & y
End Sub
Пример 14.4. По вводимым буквам русского алфавита А, Б, Д вывести слова Одесса, Николаев, Херсон. Сделать контроль ввода.
Private Sub CommandButton2_Click()
Dim x, y As String 'Объявление типов переменных Х и Y
x = InputBox(" Введите заданный символ") 'Ввод текущей буквы
Select Case x ' Начало оператора Select Case
Case “А“: y = " Одесса "
Case “Б“: y = " Николаев "
Case “Д“: y = " Херсон "
Case Else: MsgBox " Ошибочный ввод" ' Проверка ввода
End Select ' Конец оператора Select
MsgBox y
End Sub
Глава 15. Организация циклических программ в VBA
Простые циклические программы с оператором IF
Пример 15.1. Составить программу для решения задачи табулирования функции у=х2 при х=xn, xk, dx т.е. параметр цикла х изменяется от xn до xk с шагом dx.
Используем простой циклический алгоритм (глава 10. рис. 10.5,а).
Процедура отклика командной кнопки
|
Алгоритм и программа могут быть представлены более компактно, если применить блок модификации и соответствующий ему оператор цикла For..Next.