Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA-методПособие.docx
Скачиваний:
12
Добавлен:
26.11.2019
Размер:
993.94 Кб
Скачать

4.4 Многозначные ветвления

 

 

Очень часто приходиться выбирать путь решения задачи не из двух, а из нескольких возможных. В программировании это можно реализовать, используя несколько условных операторов.

 

 

Общий вид в алгоритме конструкции многозначных ветвлений следующи 

 

 

 

 

 

 

 

 

 

 

 

Нет Да

 

 

Нет Да

 

Нет Да

 

 

 

 

 

 

Синтаксис многозначных ветвлений, если Вы пишите программу структурно, следующий:

 

If <лог. выражение1> Then

P1

ElseIf <лог. выражение2> Then

P2

ElseIf <лог. выражение3> Then

P3

Else

P4

End If

Возможна и другая запись:

 

If <лог. выражение1> Then P1 ElseIf <лог. выражение2>Then P2 ElseIf <лог. выражение3> Then P3 Else P4

 

где If, Then, Else, End If - зарезервированные слова, а P1, P2,P3 P4,- операторы

Алгоритм работы такой конструкции следующий: если логическое выражение1 истинно, то выполняется оператор или блок операторов, следующих за конструкцией Then, в противном случае этот блок пропускается. Если логическое выражение, следующее за оператором If ложно, то анализируется логическое выражение, следующее за ElseIf. Если оно истинно, то выполняется оператор или блок операторов, следующих за Then, а остальные операторы пропускаются. Операторы, следующие за последним Else, выполняются лишь в том случае, если ложны все логические выражения в конструкциях If. Любая встретившаяся часть Else принадлежит ближайшей к ней части Then условного оператора. Условные операторы If в такой конструкции называются вложенными.

Рассмотрим пример использования простого условного оператора If.

1. Откройте новую рабочую книгу

2. Создайте таблицу, показанную на рис. 30

Рис. 30 Рабочий лист с примером

 

3. Вставьте модуль в рабочую книгу

4. Создайте процедуру и назовите её Абитуриент

5. Введите следующий код процедуры:

 

Dim ball As String

ball = MsgBox("Вы хотите поступить в КОЭК?", vbYesNo)

If ball = vbYes Then

Range("b4").Value = "Надо сдать экзамены"

Else

Range("b4").Value = "Идите в ПТУ"

End If

 

6. Перейдите в рабочую книгу

7. Вставьте командную кнопку в рабочий лист. В списке Имя макроса выберите процедуру Абитуриент и щёлкните на кнопке Ок

8. Дайте кнопке новое имя - Вопрос. Получим лист как на рис. 31

Рис. 31 Законченный рабочий лист

 

9. Щёлкните на кнопке Вопрос. Отобразится окно сообщения (рис.32)

Рис. 32 Вопрос, требующий ответа

 

В этом примере значение переменной ball проверяется условным оператором If. После применения оператора Range("b4").Value = "Надо сдать экзамены" в ячейку b4 рабочего листа заносится, то выражение, которое находится справа от оператора присваивания либо - "Надо сдать экзамены", либо - "Идите в ПТУ"

 

Другой пример посвящён более сложной конструкции - многозначным ветвлениям. Но прежде несколько таблиц, содержимое которых пригодится в дальнейшем. Для создания логических условий используются операторы сравнения.

Таблица 5

Оператор сравнения

Его назначение

=

Равно

>

Больше

<

Меньше

>=

Больше или равно

<=

Меньше или равно

<>

Не равно

Таблица 6

Логический оператор

Описание

And (И)

Если оба условия, соединённые этим оператором имеют значение ИСТИНА, то результат - ИСТИНА, в противном случае - ЛОЖЬ

Or (ИЛИ)

Если хотя бы одно из условий, соединённых этим оператором, имеет значение ИСТИНА, то результат - ИСТИНА, в противном случае - ЛОЖЬ

Not (Не)

Если логическое выражение имеет значение ЛОЖЬ, то результат применения к нему этого оператора - ИСТИНА. Если логическое выражение имеет значение ИСТИНА, то результат применения оператора - ЛОЖЬ.

Xor (исключающее ИЛИ)

Если одно и только одно из условий, соединённых этим оператором, имеет значение ИСТИНА, то результат - ИСТИНА. Если оба условия имеют значения ИСТИНА или ЛОЖЬ, то результат - ЛОЖЬ

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]