
- •Лекция «Visual Basic for Application»
- •Создание программ
- •Создание новой программы
- •Объявление процедуры
- •Инструкции
- •Правила именования объектов в vba
- •Описание функций
- •Инструкции
- •Использование операторов
- •Объявление констант
- •Объявление переменных
- •Типы данных vba
- •Использование типа Variant: за и против
- •Область определения переменных
- •Оператор присваивания
- •Параметры компилятора
- •Исполняемые операторы
- •Операции в vba
- •Приоритет операций
- •Использование встроенных функций vba
- •Имя_функции([аргументы])
- •InputBox(“Вводи х”, ”Моя программа ”, 8)
- •Функции ввода-вывода Функция InputBox
- •Функция вывода. Функция Msgbox
- •Управляющие структуры
- •Условный оператор if
- •Однострочный синтаксис if
- •If условие Then команда1 [Else команда2]
- •Многострочный синтаксис оператора if
- •Вложенные операторы if
-
Управляющие структуры
Без управляющих структур нельзя создать более менее сложную программу. Без них можно реализовать только линейные алгоритмы, т.е. такие, в которых операторы программы выполняются последовательно друг за другом. И хотя процедуры и функции с линейным алгоритмом могут выполнять достаточно сложные задачи, они не в состоянии принять решение, влияющее на работу программы при определенных условиях.
Управляющие структуры – это операторы программного кода, определяющие, какие действия будут выполняться следующими, и использующие для этого некоторое условие.
К управляющим структурам VBA относятся:
-
– условные операторы IF … Then … Else …;
-
оператор выбора Select Case;
-
цикл с конечным числом повторений FOR … NEXT;
-
цикл с условием DO … LOOP;
-
цикл, FOR Each … Next позволяющий повторять некоторые действия со всеми объектами семейства;
-
оператор With, позволяющий выполнять множество действий с одним объектом ,без необходимости каждый раз указывать имя объекта.
-
Условный оператор if
Эта управляющая структура используется для выбора той или иной ветви выполнения программы на основании некоторого условия. Имеет два синтаксиса: однострочный и многострочный.
-
Однострочный синтаксис if
If условие Then команда1 [Else команда2]
Сначала проверяется условие и при его истинности выполняется команда1, а при ложности команда2.
Условие – представляет собой любое выражение или функцию, истинность которых будет оцениваться. Условие может быть одного из следующих типов:
-
оператор сравнения переменной с каким-либо значением, переменной или функцией;
X>5 a<>b Z=Int(X) 'функция Int(число) возвращает целую часть числа
-
переменная, принимающая значение логического типа;
Dim F As Boolean
……………………………………………..
If F Then …..
-
любая функция, возвращающая значение логического типа.
If IsNumeric(A) Then MsgBox “Вы ввели число” Else MsgBox “Это не число”
Функция IsNumeric(выражение) возвращает Истину, если выражение является числом, иначе – Ложь.
Однострочный оператор IF называют еще простым оператором выбора. Он используется тогда, когда и условие и действия, выполняющиеся в случае истинности и ложности условия, являются достаточно простыми выражениями.
Пример:
Вычислить Z. Z = cos(x), если Х>0 и Z = 1, иначе.
Sub Вычисление_Z()
Dim X As integer, Z As Double
X = InputBox(“Введите Х”)
IF X>0 Then Z =Cos(x) Else Z = 1
MsgBox “Z = ” & Z
End Sub
Если необходимо проверить несколько условий или в ответ на истинность (ложность) условия необходимо выполнить несколько действий, используют многострочный (блочный) синтаксис оператора IF.
-
Многострочный синтаксис оператора if
If условие1 Then [операторы1]
[ElseIf условие_n Then [elseif_операторы] ...
[Else [else_ операторы]]
End If
Используется для анализа нескольких условий, на каждое из которых может быть свой отклик.
Данная синтаксическая конструкция еще называется блочной и обязательно заканчивается End If.
! При использовании блочного оператора If строго следите за формой его написания.
П
ример:
Покупатель приобретает товар по
определенной цене. В зависимости от
количества купленных товаров предоставить
покупателю плавающую систему скидок:
при количестве > 10, скидка составит
5%; >25, скидка –10%; >50,скидка –15%.
Составим блок-схему решения данной задачи, обозначив количество товара символом К.
Р
Sub
Покупка()
Dim
K As Byte
'Количество товара
Dim
Скидка As
Double
Const
Цена As
Currency = 500
K = InputBox("Сколько
товара приобретено?")
'Вычисление
скидки
If
K > 50 Then
Скидка
= 0.15
ElseIf
K > 25 Then
Скидка
= 0.1
ElseIf
K > 10 Then
Скидка
= 0.05
Else
Скидка
= 0
End
If
'Вычислим
цену со скидкой
MsgBox "Покупатель
заплатит " & Цена * K * (1– Скидка) &
" руб." End Sub