logo
Конспект лекций по КИТ

Процедура

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

Синтаксис:

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

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

[Exit Sub]

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

End Sub

Элементы описания:

Public

Указывает, что процедура Sub доступна для всех дру­гих процедур во всех модулях

Private

Указывает, что процедура Sub доступна для других процедур только того модуля, в котором она описана

Static

Указывает, что локальные переменные процедуры sub сохраняются в промежутках времени между вызовами этой процедуры

Имя

Имя процедуры sub, удовлетворяющее стандартным правилам именования переменных

СписокАргументов

Список переменных, представляющий аргументы, ко­торые передаются в процедуру Sub при ее вызове. Имена переменных разделяются запятой

Инструкции

Любая группа инструкций, выполняемых в процедуре

Sub

Инструкция Exit Sub приводит к немедленному выходу из процедуры Sub.

Синтаксис элемента

СписокАргументов:

[Optional] [ByVal | ByRef] [ParamArray] имяПеременной[( )] _

[As тип] [= поУмолчанию]

Optional

Ключевое слово, указывающее, что аргумент не является обязательным. При использовании этого элемента все последующие аргументы, которые содержатся в списке СписокАргументов, также должны быть необязательными и описаны с помощью ключевого слова optional. Все аргументы, описанные как optional, должны иметь тип variant. He допускается использование ключевого сло­ва optional для любого из аргументов, если использует­ся ключевое слово ParamArray

ByVal

Указывает, что этот аргумент передается по значению.

ByRef

Указывает, что этот аргумент передается по ссылке. Описание ByRef используется в VBA по умолчанию

ParamArray

Используется только в качестве последнего элемента в списке СписокАргументов для указания, что конечным аргументом является описанный как optional массив значений типа Variant. Ключевое слово ParamArray по­зволяет задавать произвольное количество аргументов. Оно не может быть использовано со словами ByVal, ByRef или Optional

имяПеременной

Имя переменной, удовлетворяющее стандартным прави­лам именования переменных

тип

Тип данных аргумента, переданного в процедуру; под­держиваются типы Byte, Boolean, Integer, Long, Currency, Single, Double, Date, String (ТОЛЬКО строки

переменной длины), object, Variant. Если отсутствует ключевое слово optional, могут быть также указаны оп­ределяемый пользователем тип или объектный тип

поУмолчанию

Любая константа или выражение, дающее константу. Используется только вместе с параметром optional. Ес­ли указан тип object, единственным значением по умолчанию может быть значение Nothing

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

Синтаксис:

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

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

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

[Exit Function]

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

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

End Function

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

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