Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа Макросы.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
897 Кб
Скачать
☆

Функции пользователя

На языке VBA можно создавать новые функции - функции пользователя. Функция, в отличие от процедуры, возвращают одно вычисленное значение. Функция может участвовать в выражениях оператора присваивания.

Синтаксис заголовка функции:

Function <имя_процедуры>(аргументы) As <type>

тело процедуры (операторы)

End Function

Особенность: Тип величины, возвращаемой функцией, указывается как As <type>. В теле функции обязательно должен быть оператор присваивания, который вычисленное значение результата присваивает имени функции.

Ниже приведен пример использования пользовательской функции при вычислении площади прямоугольника:

Текст программы

Комментарий

Sub Proc_A ( )

Dim S as Single

Dim LL as Single

Dim HH as Single

LL=12

HH=23

S=Sq(LL;H)/2+1200

End Sub

Function Sq (H As Single; L As Single As Single)

Sq=H*L

End Function

- вызывающая процедура: объявление переменных:

- площадь

- длина

- высота

- присвоение значений

- переменным

- формула вычисления площади с вызовом функции Sq

- конец процедуры

- объявление функции Sq с аргументами

- присвоение функции Sq результата вычисления

- конец функции

Управляющие структуры

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

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

Синтаксис условного оператора:

If <выражение> Then <оператор>

Этот оператор обеспечивает проверку логического выражения (условия). Если это условие истинно (True), то выполняется простой или составной оператор, записанный после слова Then; если условие ложно (False), то работа оператора If заканчивается и управление передается оператору, следующему за If.

Составной оператор – это последовательность операторов одной строки, разделенных знаком двоеточием.

Примеры условных операторов:

If MP > 20,500.00$ Then MP=25,500.00$

If Stud_C(100).FName Like "Пе*" Then num=Slud_C (100).Gr

В выражениях могут использоваться специальные функции логических проверок VBA, а в логических выражениях можно использовать стандартные логические функции.

Таблица 8. Логические функции VBA.

Функция

Описание

Функция

Описание

Not

And

Or

- инверсия или отрицание

- логическое "И"

- логическое "ИЛИ"

 

Xor

Imp

Eqv

- исключающее "Или"

- импликация

- эквивалентность

Синтаксис цепочки вложенных операторов If:

If <выражение 1 > Then <блок операторов 1>

ЕlseIf <выражсние2> Then

<блок операторов2>

ElseIf <выражение3> Then

<блок операторов3>

[Else

<блок операторов Else>

End If

Поочередно выполняется проверка истинности выражений. Если выражение1 истинно, выполняется блок операторов1, иначе выполняется проверка истинности выражения2 и т.д. Если ни одно из выражений не является истинным, то выполняется блок операторов Else, если он имеется, иначе - оператор, следующий за End If. Примеры организация проверки цепочки вложенных операторов If:

Программа

Комментарий

If AgPr >120

Then DfPr = Full(234,456)

ElseIf AgPr > 240

Then DfPr = Full(120,450)

ElseIf AgPr > 360

Then DfPr = Full(240,500)

Else DfPr = Full(360,700)

End If

Проверка условия 1:

условие 1 истинно, то вызов процедуры

иначе Проверка условия 2:

условие 2 истинно,то вызов процедуры

иначе Проверка условия 3:

условие 3 истинно,то вызов процедуры

иначе (т.е. условия 1-3 ложны) вызов процедуры

Конец блока If