Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция «Visual Basic for Application».doc
Скачиваний:
10
Добавлен:
26.11.2018
Размер:
247.3 Кб
Скачать
  1. Управляющие структуры

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

Управляющие структуры – это операторы программного кода, определяющие, какие действия будут выполняться следующими, и использующие для этого некоторое условие.

К управляющим структурам VBA относятся:

  • – условные операторы IFThenElse;

  • оператор выбора Select Case;

  • цикл с конечным числом повторений FORNEXT;

  • цикл с условием DOLOOP;

  • цикл, FOR Each … Next позволяющий повторять некоторые действия со всеми объектами семейства;

  • оператор With, позволяющий выполнять множество действий с одним объектом ,без необходимости каждый раз указывать имя объекта.

    1. Условный оператор if

Эта управляющая структура используется для выбора той или иной ветви выполнения программы на основании некоторого условия. Имеет два синтаксиса: однострочный и многострочный.

      1. Однострочный синтаксис 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.

      1. Многострочный синтаксис оператора 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

еализация на VBA: