- •Информатика Сборник лабораторных работ по программированию в среде Visual Basic for Applications
- •Содержание
- •Введение
- •Лабораторная работа №1. Vba. Основные понятия. Среда разработки. Основы пРоГраммирования. Переменные
- •Среда программирования vba
- •Основы программирования на vba
- •Переменные
- •Математические операторы
- •Лабораторная работа №2. Диалоговые окна
- •Контрольные вопросы
- •Лабораторная работа № 3. Разветвляющиеся алгоритмы
- •1. Операторы условия if...Then
- •1.1 Строчный оператор If…Then…Else
- •1.2 Блочный условный оператор
- •1.3 Вложенные операторы If
- •1.4 Логические операции
- •2. Безусловный переход GoTo
- •3. Оператор выбора – переключатель
- •5. Задачи для самостоятельного решения!
- •Лабораторная работа № 4. Циклы со счетчиком
- •Лабораторная работа № 5. Циклы с условием
- •1. Циклы с предусловием
- •2. Цикл с постусловием
- •3. Цикл For Each … Next
- •4. Задания к лабораторной работе
- •5. Контрольные вопросы
- •Лабораторная работа № 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
Проверьте работу программы и составьте блок-схему. Добавьте еще часть суток – " ночь" и укажите время.
