Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA (методичка).doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.3 Mб
Скачать

11.Объявление процедур и функций

11.1Объявление процедур

[Private  Public] [Static] Sub имяПроцедуры ([списокАргументов])

[блокОператоров1]

[Exit Sub]

[блокОператоров2]

End Sub

Ключевое слово Private определяет область видимости процедуры только в модуле, в котором она описана. Ключевое слово Public делает процедуру доступной для всех модулей проекта. По умолчанию она общедоступна.

Если указано ключевое слово Static, то все локальные переменные объявляются статическими.

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

После имени процедуры обязательны скобки, но необязательны аргументы.

блокОператоров1 и блокОператоров2 - тело процедуры. Если в ходе выполнения операторов процедуры встречается оператор Exit Sub (выход из процедуры), то выполнение процедуры прекращается и управление передается оператору, следующему за оператором вызова процедуры.

11.2Объявление функций

[Private  Public] [Static] Function имяФункции ([списокАргументов]) [As типЗначения]

[блокОператоров1]

[имяФункции=Выражение]

[Exit Function]

[блокОператоров2]

[имяФункции=Выражение]

End Function

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

11.3Аргументы процедур и функций

Если процедура или функция имеет аргументы, то описание их выполняется после имени соответствующей процедуры или функции в скобках. Синтаксис описания следующий:

[Optional] [ByVal  ByRef] [ParamArray] имяАргумента [()] [As типДанных] [=значениеПоУмолчанию]

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

- Аргументы, передаваемые по значению (эти аргументы подпрограммой не изменяются). Перед именем такого аргумента должно стоять ключевое слово ByVal.

- Аргументы, передаваемые по ссылке (эти аргументы подпрограмма может изменить). Перед именем такого аргумента должно стоять ключевое слово ByRef.

По умолчанию все аргументы передаются в подпрограмму по ссылке.

Ключевое слово Optional означает, что аргумент необязателен, и его можно опустить при вызове подпрограммы. По умолчанию аргумент обязателен. Все необязательные аргументы должны находиться после обязательных.

Необязательный параметр значениеПоУмолчанию задается для необязательного аргумента и определяет его значение, если аргумент не задан при вызове подпрограммы.

При использовании в конструкции ключевого слова ParamArray использование ключевого слова Optional невозможно. Параметр ParamArray может стоять только перед именем последнего аргумента в списке аргументов и указывает на то, что этот аргумент является необязательным массивом элементов типа Variant.