Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
65
Добавлен:
10.04.2015
Размер:
2.87 Mб
Скачать

Создание и использование процедур

Цель работы: изучение правил создания и использования процедур Sub и Function в модуляхVBA.

8.1. Теоретические сведения

В VBA программы состоят из набора процедур. Каждый модуль проекта содержит одну или несколько процедур. В VBA предусмотрено два типа процедур: Sub и Function. Весь программный код находится внутри этих процедур.

Процедуры типа Function (Функция) вызываются по имени из любой процедуры типа Sub или из других процедур типа Function.

Процедуры Function в этом отношении не отличаются от встроенных функций Visual Basic, но разрабатываются пользователем; они могут содержать аргументы, через которые получают входные значения.

Процедуры типа Sub (Подпрограмма) вызываются по имени из других процедур, они могут содержать аргументы, получать входные значения, выполнять определенные действия.

Использование процедур уменьшает объем программы, улучшает ее структурированность. Облегчается отладка программ, так как работу каждой процедуры можно проверить по отдельности. По сути, процедуры – это новые операторы или операции языка, определенные программистом.

8.1.1. Создание процедур-функций типа Function

Для создания процедуры функции Function(рис. 8.1) необходимо выбрать пункт менюInsert (Вставка) → Procedure (Процедура).

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

Синтаксис процедуры-функции Function:

Function имя_функции ([список формальных параметров]) [As Type]

Тело функции (строки кода)

Имя функции = Возвращаемое значение

End Function

Рис. 8.1. Вид окна для создания процедуры типа Function

Каждая функция-процедура начинается ключевым словом Function, за которым следует имя функции, а затем – список ее аргументов, заключенных в круглые скобки, который является необязательным. Typeлюбой тип возвращаемого значения функции. В теле функции последней исполняемой командой является функция присваивания: Имя функции = Возвращаемое значение. В результате ее выполнения имени функции присваивается значение выражения соответствующего типа, которое и возвращает функция.

Объявление функции заканчивается ключевыми словами End Function.

П р и м е р 1. При вычислении выражения

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

.

Тогда .

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

Option Explicit

Sub PR1()

Dim w As Single, x As Single, y As Single, z As Single

x = Val(InputBox(" x="))

y = Val(InputBox(" y="))

z = Val(InputBox(" z="))

w = Fsqr(x, y) + Fsqr(y, z) + Fsqr(z, x)

MsgBox (" w=" & w)

End Sub

Процедура пользователязапишется следующим образом:

Function Fsqr(a, b) As Single

Fsqr = Sqr(a ^ 2 + b ^ 2 + Sin(a * b))

End Function

В процедуре Function Fsqr() a и b являются формальными параметрами. При обращении к процедуре Fsqr() в подпрограмме Sub PR1() переменные x, y, z являются фактическими параметрами, совпадающими с формальными параметрами a и b по типу, количеству, порядку следования.

Соседние файлы в папке Лаб. работы по VBA