Вызов процедур и функций

Понятие функции

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

 

Y = ABS(X)

 

- определяет модуль числа X и возвращает результат, который присваивается переменой Y.

Приведенный ниже синтаксис описывает имя, аргументы и текст программы, составляющие тело функции.

Синтаксис:

[Public | Private] [Static] Function Имя [(СписокАргументов)] [As Тип]

[Инструкции]

[Имя = Выражение]

[Exit Function]

[Инструкции]

[Имя = Выражение]

End Function

 

Синтаксис инструкции Function содержит те же элементы, что и Sub. Инструкция Exit Function приводит к немедленному выходу из функции. Подобно процедуре Sub, процедура Function является самостоятельной процедурой, которая может получать аргументы, выполнять последовательность инструкций и изменять значения своих аргументов. Однако в отличие от процедуры Sub, когда требуется использовать возвращаемое функцией значение, процедура Function может применяться в правой части выражения, как и любая другая встроенная функция, например, cos. Для возврата значения из функции следует присвоить значение имени функции. Любое число таких инструкций присвоения может находиться в любом месте процедуры.

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

 

Public Function Процент (число)

Процент = число*0.01/100

End Function

 

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

 

6.1.4. Правила для имён процедур и функций

В VBA существуют определённые правила для имён процедур и функций:

§ первые три символа имени должны быть буквами;

§ имя может содержать буквы, цифры и знаки подчёркивания;

§ имя не может содержать пробелы, точки, запятые, восклицательные знаки и символы @, &, $, #;

§ имя не должно иметь более 255 символов.

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

 

Вызов процедур и функций из другой процедуры (функции) осуществляется посредством указания имени процедуры (функции) и списка параметров:

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

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

ИмяФункции(СписокФактическихПараметров)

 

ИмяПроцедуры, ИмяФункции Имя вызываемой процедуры
СписокФактическихПараметров Список аргументов, передаваемых процедуре. Он должен соответствовать списку, заданному в процедуре по количеству и типу.

 

При этом для функции список параметров должен быть указан в скобках, а для процедур возможно два вариант:

– с применением ключевого слова Call, в этом случае список параметров заключается в скобки;

– без применения ключевого слова Call и без скобок.