VBA. Оператор условного перехода. Объекты Excel
Цель работы:
-Разработка программ разветвляющейся структуры с условным оператором IF.
- Программирование с использованием объектов EXCEL.
Для выполнения примеров и заданий создайте файл Lab_2_VBA (имя можете выбрать по своему.
Часть 1.
1. В схемах алгоритмов выбор условия обозначается с помощью символа,
от которого отходит ветвление для указания дальнейших действий в зависимости от выбора “ДА” или “НЕТ”.Выбор хода алгоритма, как правило,зависит от значения переменной или выражения, состояния объекта. Например,
НЕТ
…
ДА
….
2. В программном коде, чтобы реализовать ветвление применяется условный оператор
IFTHEN.
Примечания.
1 В приведенных ниже описаниях синтаксиса выражения, записанные в [ ] (квадратные скобки) необязательны.
Использование: (двоеточие) позволяет записать несколько выражений в одной строке. Применяется редко.
Условный оператор позволяет выбирать и выполнять действия в зависимости от истинности некоторого условия. Имеется два варианта синтаксиса: В первом случае он имеет вид:
IF< условие >Then [операторы 1] [ Else [операторы 2] ]
Во втором случае оператор расположен на нескольких строках:
IF< условие >Then
[операторы]
[ElseIf< условие – n> Then
[операторы-n ]…
[Else]
[ИначеОператоры]]
EndIf
Здесь условие обязательно в обоих вариантах. Оно может быть числовым или строковым выражением со значениями TRUE или FALSE.
Операторы 1 и операторы 2 это последовательности из одного или нескольких операторов. По крайней мере одна из этих последовательностей должна быть непустой. Если условие истинно (TRUE), выполняется последовательность «операторы 1», если ложно, “операторы 2”.
|
Примеры записи оператора:
Условный оператор в виде одной строки:
IF A>10 Then A=A+1: B=B+A: C=C+B ELSE C=A*B: A=C+2
Тот же условный оператор в виде блока:
IF A>10 Then
A=A+1
B=B+A
C=C+B
ELSE
C=A*B: A=C+2
EndIf
Далее рассматривается примеры использования условного оператора и задания для выполнения.
Задание 1 Определить положение точки с заданными координатами на плоскости.
Пример1 (Выполнить)
Если точка М(x1,y1)лежит:
· выше прямой y=kx+b, то выдать сообщение “Точка М лежит выше прямой”;
· ниже прямой, то выдать сообщение “Точка М лежит ниже прямой”;
· на прямой, то выдать сообщение “Точка М лежит на прямой”.\
Решение задачи.
1 этап. Разработать интерфейс приложения.
Рис.1 Интерфейс приложения
2 этап. Определить ход решения задачи и составить алгоритм программы. В нашей задаче, чтобы определить положение точки относительно прямой, нужно подставить координату точки X1 в уравнение прямой и сравнить полученное значение Yc координатой точки Y1. Если значение Y=Y1, точка лежит на прямой; если полученное значение Y>Y1, точка –ниже прямой, и,наконец, если Y<Y1, точка – выше прямой.
СХЕМА АЛГОРИТМА ПРОГРАММЫ(См. ниже)
3 этап. Загрузить редактор VBA и разработать приложение, используя в качестве интерфейса UserForm.
4 этап. Написать программный код. Для этого рекомендуется выполнить двойной щелчок по кнопке СТАРТ и перейти в окно программы, где набрать текст процедуры обработки события.
Примерная структура процедуры приведена ниже. Приведены пронумерованные блоки выражений и операторов. Для вывода сообщения использована функция MsgBox.
|
PrivateSubCommandButton1_Click()
1. Описаниепеременныxx1, y1, k, b, y
Dim x1 As Double, y1 As Double, k As Double
2. Блок операторов считывания значений переменных из окон TextBox. (Подобные операторы применялись в предыдущей лаб. работе).
3. Оператор определения значения y (y = k * x1 + b)
4. Условный оператор (текст приведен ниже)
Ify = y1 Then
MsgBox "Точка лежит на прямой"
ElseIfy>y1 Then
MsgBox "Точка лежит ниже прямой "
Else
MsgBox "Точка лежит выше прямой "
EndIf
EndSub
Процедурадлякнопки ВЫХОД:
Private Sub CommandButton2_Click()
Unload UserForm1 (илиUserForm1.Hide)
EndSub
Для объекта Флажок ( CheckBox) -подобная процедура разрабатывалась в лаб. работе №1.