
- •Теоретические сведения
- •Содержание
- •Лабораторная работа №1
- •Vba. Встроенные функции ввода/вывода. Теоретические сведения
- •Типы данных
- •Переменные
- •Константы
- •Операции
- •Оператор присваивания
- •Приоритеты операций
- •Функции взаимодействия с пользователем
- •Лабораторная работа №2
- •Vba. Ветвления
- •Условный оператор If
- •Оператор выбора Select Case
- •Оператор безусловного перехода GoTo
- •Программа на vba:
- •Лабораторная работа №3 Разработка пользовательских диалоговых форм. Теоретические сведения
- •Лабораторная работа №4 Средства автоматизации разработки текстовых документов. Работа с объектами ms Word. Теоретические сведения
- •Лабораторная работа №5 Средства автоматизации разработки приложений в ms Word.
- •Контрольные вопросы по лабораторным работам
Лабораторная работа №2
Программирование ветвлений с использованием операторов If и Select Case.
Теоретические сведения
Логические функции.
Для выполнения следующих лабораторных работ необходимо ознакомиться с логическими функциями И(), ИЛИ(), ЕСЛИ().
Логическая функция И() возвращает значение ИСТИНА, если все ее аргументы имеют значение ИСТИНА, и возвращает значение ЛОЖЬ, если хотя бы один аргумент имеет значение ЛОЖЬ.
Синтаксис логической функции И():
И(логическое_значение1;логическое_значение2;…)
Логическая функция ИЛИ() возвращает значение ИСТИНА, если хотя бы один из ее аргументов имеет значение ИСТИНА, и возвращает ЛОЖЬ, если все ее аргументы имеют значение ЛОЖЬ.
Синтаксис логической функции ИЛИ():
ИЛИ(логическое_значение1;логическое_значение2;…)
Аргументы этих логических функций должны быть логическими значениями, массивами или ссылками, которые содержат логические значения. Если аргумент, который является ссылкой или массивом, содержит тексты или пустые ячейки, то такие значения игнорируются. Если указанный интервал не содержит логических значений, то И() возвращает значение ошибки #ЗНАЧ!
Таблица истинности для логических функций:
A |
B |
A И B |
A ИЛИ B |
ИСТИНА |
ИСТИНА |
ИСТИНА |
ИСТИНА |
ИСТИНА |
ЛОЖЬ |
ЛОЖЬ |
ИСТИНА |
ЛОЖЬ |
ИСТИНА |
ЛОЖЬ |
ИСТИНА |
ЛОЖЬ |
ЛОЖЬ |
ЛОЖЬ |
ЛОЖЬ |
Логическая функция ЕСЛИ() – это условный оператор (развилка)или проверка выполнения некоторого условия. Возвращает одно значение, если заданное условие при вычислении дает значение ИСТИНА, и другое значение, если – ЛОЖЬ.
Синтаксис логической функции ЕСЛИ():
ЕСЛИ (логическое_выражение; значение_если_ истина; значение_ если_ложь)
Логическое_выражение – это любое значение или выражение, принимающее значения ИСТИНА или ЛОЖЬ. Например, А10=100 – это логическое выражение; если значение в ячейке А10 равно 100, то выражение принимает значение ИСТИНА, а в противном случае – ЛОЖЬ.
Значение_если_истина – это значение, которое возвращается, если логическое_выражение равно ИСТИНА.
Значение_если_ложь – это значение, которое возвращается, если логическое_выражение равно ЛОЖЬ.
Эти значения могут быть формулами. До 7 функций ЕСЛИ могут быть вложены друг в друга для конструирования более сложных задач.
Vba. Ветвления
Ветвление - это управляющая операция языка программирования, позволяющая изменить порядок выполнения алгоритма программы.
Для реализации ветвлений в программах на VBA используются следующие операторы:
условный оператор If;
оператор выбора Select Case;
оператор безусловного перехода Goto.
Условный оператор If
Условный оператор – это структура, которая выбирает ту или иную ветвь кода процедуры на основе некоторого предопределенного условия или группы условий. Общий синтаксис условного оператора:
If <условие1> Then
<Блок операторов1>
[ElseIf <условие2> Then
<Блок операторов2>
[ElseIf <условиеN> Then
<Блок операторовN>]
[Else
<Блок операторов_Else>]]
End If
где:
<условиеN> - проверяемое условное выражение;
<Блок операторовN>; - операторы, выполняемые при истинности условия;
<Блок операторов_Else> - операторы, выполняемые по умолчанию.
Блоки ElseIf и Else - необязательны.
Помимо приведенной полной формы, поддерживается синтаксис краткой однострочной формы условного оператора следующего вида:
If <условие> Then <оператор>
Примеры использования условного оператора приведены в листингах 1 и 2.
Листинг 1. Полная форма условного оператора
Sub sample1()
Dim value As Long
Const MSG = "Вы ввели число, "
value = InputBox(prompt:="Введите число", Title:="Пример 1")
If value = 0 Then
MsgBox (MSG & "равное 0")
ElseIf value > 0 Then
MsgBox (MSG & "большее 0")
Else
MsgBox (MSG & "меньшее 0")
End If
End Sub
Листинг 2. Краткая форма условного оператора
Sub sample2()
Dim value As Long
Const MSG = "Вы ввели число, "
value = InputBox(prompt:="Введите число", Title:="Пример 1")
If value = 0 Then MsgBox (MSG & "равное 0")
If value > 0 Then MsgBox (MSG & "большее 0")
If value < 0 Then MsgBox (MSG & "меньшее 0")
End Sub
Логические выражения могут быть построены с помощью логических функций Not, And, Or, Xor, Imp, Eqv (листинг 3).
Листинг 2. Составные логические выражения
'Программа запрашивает имя пользователя и пароль,
'проверяет введенную информацию и выводит сообщение.
Sub sample3()
Const UNAME = "User"
Const PASSWD = "TopSecret"
login = InputBox(prompt:="Логин")
pass = InputBox(prompt:="Пароль")
If (login = UNAME) And (pass = PASSWD) Then
MsgBox ("Добро пожаловать!")
Else
MsgBox ("Вы не авторизованы!")
End If
End Sub