Функции


Лекция №11 ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ

До сих пор мы рассматривали только процедуры обработки событий. Такие процедуры в языке VBA всегда привязаны как к совершаемому событию, так и к объекту, над которым это событие совершается. Это отражается в том, что имя процедуры, которое в этом случае формируется средой VBA, складывается из имени объекта и названия события.

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

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

Такие процедуры, не связанные с объектом и событием, называются в VBА еще пользовательскими процедурами или главными процедурами. Их можно использовать неоднократно в программном коде.

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

Можно различить два типа пользовательских процедур:

* процедуры типа Function (функция);

* процедуры типа Sub (подпрограмма).

Мы с вами уже сталкивались с встроенными (стандартными) функциями VBA. Это sin(), InputBox(())…А сейчас мы поговорим о функциях, которые сможем создавать сами. Это пользовательские функции.

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

Текст функции записывается в разделе General окна программного кода листа Excel, в этом случае она будет доступна во всех процедурах на данном листе.

 

Структура функции. Функция состоит из заголовка и тела.

 

Function <Имя функции> (<Аргумент1> <As Тип>, ...)<As Тип>

<программный код для определения функции>

<имя функции>= выражение

End Function

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

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

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