Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник по VBA.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
6 Мб
Скачать
☆

1.3 Вложенные операторы If

Операторы If могут быть вложенными друг в друга. Такое вложение операторов применяется, если нужно проверить какое-либо условие при другом условии, которое является истинным. Синтаксис вложенного оператора If блочной структуры следующий:

If условие_1 Then

If условие_2 Then

операторы, выполняемые, если условие_1 и условие_2 истинны

Else

операторы, выполняемые, если условие_2 не является

истинным

End If

End If

В VBА предусмотрена конструкция для работы с вложенными операторами If, когда необходимо рассмотреть еще несколько условий в дополнение к исходному (если исходное условие принимает значение False). Синтаксис такой записи вложенных операторов имеет следующую конструкцию:

If условие_1 Then

операторы, выполняемые, если условие_1 истинно

ElseIf условие_2 Then

операторы, выполняемые, если условие_2 истинно

ElseIf условие_3 Then

операторы, выполняемые, если условие_3 истинно

Else

операторы, выполняемые, если ни одно из условий не является

истинным

End If

ОБРАТИТЕ ВНИМАНИЕ:

для повышения удобочитаемости в программе используются приемы структурирования: строки под операторами If…Then, ElseIf и Else имеют разный отступ от левого края, не считая отступа самой структуры If…Then;

для ElseIf не используется End If;

при выполнении этой конструкции VBА останавливается на первом же выражении, имеющим значение True, даже если остальные выражения также истинны.

ВЫПОЛНИТЕ!

Задание 2. Создать командную кнопку для ввода названия части суток и приветствия с использованием этого названия.

Для этого необходимо выполнить следующее:

Выберите команду Сервис/Макрос/Редактор Visual Basic. Откроется окно редактора Visual Basic.

Выберите команду Вставка /UserForm.

Используя панель инструментов Элементы управления, создайте в форме командную кнопку: для этого с помощью мыши перетащите рамку элемента управления Кнопка в нужное место Вашей формы и задайте ей нужный размер.

Используя окно Свойства, установите для кнопки свойство Caption со значением Сутки.

Дважды щелкнув по созданной кнопке Сутки, в появившемся модуле формы введите следующие операторы в процедуру CommandButton1_Click()

Dim Сутки As string ` объявление переменной Сутки

Сутки=InputBox(“Введите часть суток”)

If Сутки=”утро” Then

MsgBox(“Доброе утро”)

ElseIf Сутки=”вечер” Then

MsgBox(“Добрый вечер”)

Else

MsgBox(“Извините такая часть суток отсутствует”)

Endif

Проект готов. Нажмите клавишу <F5>. На экране отобразится диалоговое окно UserForm1. Затем нажмите на кнопку Сутки и проверьте работу программы.

Теперь нарисуем блок-схему.

Да

Да

Нет

Нет

1.4 Логические операции

VBA позволяет использовать сложные условные выражения в одном операторе If, которые связываются между собой с помощью следующих логических операций:

Логическая операция

Действие

And

(Конъюнкция)

Результирующее значение будет True (Истина), если все условные выражения истинны.

Or (Дизъюнкция)

Результирующее значение будет True (Истина), если хотя бы одно из условных выражений истинно.

Not (Отрицание)

Результирующее значение будет True (Истина), если условное выражение ложно (False) и наоборот.

Xor

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

Результирующее значение будет True (Истина), если одно и только одно условное выражение истинно.

ВЫПОЛНИТЕ!

Задание 3.

Изменим выше составленную программу (процедура CommandButton1_Click), введя еще время для идентификации части суток:

Dim Сутки As String, время As Integer

Сутки = InputBox("Введите часть суток")

время = InputBox("Введите время суток")

‘Логическая операция And

If Сутки = "утро" And время <= 11 Then

MsgBox ("Доброе утро")

ElseIf Сутки = "день" And время <= 16 Then

MsgBox ("Добрый день")

ElseIf Сутки = "вечер" And время >= 18 Then

MsgBox ("Добрый вечер")

Else

MsgBox "Извините, неверная часть суток или неверное время "

End If

Проверьте работу программы и составьте блок-схему. Добавьте еще часть суток – " ночь" и укажите время.