Скачиваний:
0
Добавлен:
01.03.2025
Размер:
683.01 Кб
Скачать

Описание функций Синтаксис описания функции:

[Public|Private][Static]Function<Имя>([СписокАргументов])[As<Тип>] [Инструкции] [Имя = Выражение] [Exit Function] [Инструкции] [Имя = Выражение] End Function

Синтаксис инструкции Function содержит те же ключевые слова, что и Sub.

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

2.2.3Вызов процедур и функций Вызов процедур Синтаксис вызова процедуры:

Call <ИмяПроцедуры> (<СписокФактическихПараметров>)

Значения ключевых слов

  • ИмяПроцедуры - имя вызываемой процедуры.

  • СписокФактическихПараметров - список аргументов, передаваемых процедуре. Он должен соответствовать списку, заданному в описании процедуры по количеству и типу элементов. Элементы списка разделяются запятой. Необязательные (Optional) параметры можно пропускать, отделяя их позиции запятыми.

Если требуется использовать несколько процедур из разных модулей с одинаковыми названиями, при их вызове после имени процедуры через точку надо указывать имя модуля, на котором они расположены: ИмяМодуля.ИмяПроцедуры.

Команду “Call” можно опускать, тогда VBA требует, чтобы список фактических параметров не заключается в скобки.

VBA позволяет вводить фактические параметры через имена аргументов в любом порядке. При этом после имени аргумента ставятся двоеточие и знак равенства, после которого помещается значение аргумента (фактический параметр).

Вызов функций

Функция при вызове возвращает значение результата в соответствии с описанным типом таким образом, что может вызываться в правой части оператора присваивания или в составе выражения.

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

Примеры Основные способы передачи параметров в процедуры.

Функция

Function sq (ByVal x As Integer) As Integer 'целочисленная функция с именем “sq” и аргументом “x” целого типа, передаваемым по значению.

sq = x ^ 2 'вычисление возвращаемого значения

End Function 'конец функции

Процедура

Sub OutS (ByVal a As Integer, ByRef s As Integer) 'процедура с именем “OutS”, и целочисленными аргументами: “а”, передаваемым по значению, “s”, – по ссылке.

s = a ^ 2 'вычисление результата

End Sub 'конец процедуры

Примеры передачи параметров

Sub Main () 'главная процедура модуля

Dim x, y As Integer 'x, у — переменные, используемые в качестве фактических параметров

OutS 0, y 'Вызов процедуры с конкретными числами как фактическими параметрами

MsgBox CStr(y) 'вывод результата

x = 1 'присвоение значения переменной x

OutS x, y 'вызов процедуры с использованием переменных в качестве фактических параметров

MsgBox CStr(y) 'вывод результата

x = 2 'присвоение значения переменной x

Call OutS(x, y) 'вызов процедуры командой “call”

MsgBox CStr(y) 'вывод результата

y=sq(3) 'вызов функции

MsgBox CStr(y) 'вывод результата

Call OutS(sq(2),y) 'вызов процедуры с использованием значения функции в качестве фактического параметра

MsgBox CStr(y) 'вывод результата

OutS s:=y, a:=5 'вызов процедуры с указанием имён фактических параметров – допустимо в любом порядке для этого способа

MsgBox CStr(y) 'вывод результата

y=sq(x+sq(2)) 'использование выражения в качестве фактического параметра функции

MsgBox CStr(y) 'вывод результата

End Sub 'Конец процедуры

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]