Пример 2.

Пример 1.

Область действия имен процедур и функций

Именованные аргументы

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

 

ИмяАргумента:= ЗначениеАргумента

 

Именованный аргумент состоит из имени аргумента, за которым следует двоеточие со знаком равенства (:=) и значение аргумента.

Именованные аргументы особенно полезны при вызове процедуры с необязательными аргументами (Optional).

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

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

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

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

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

Должно выполняться следующее соответствие между списками аргументов при объявлении и при обращении:

 

Аргумент Аргумент при обращении

при объявлении

Переменная Константа, переменная, элемент массива, выражение.

Массив Массив

Форма Форма

Элемент управления Элемент управления

 

 

Sub Sum (A As Integer, B As Integer, С As Integer)

С = А + В

End Sub

Sub Form_Click ()

Dim X(1 To 3) As Integer

X(1) = 1

X(2) = 2

Sum X(1), X(1) + X(2), X(3)

Print Х(1), Х(2), Х(3)

End Sub

Sub Command1_Click ()

Dim X As Integer, Z As Integer

X = 5

Sum X, 4, Z

Print X, Z

End Sub

 

Результат при щелчке на форме: 1 2 4

Результат при щелчке на кнопке: 5 9

 

 

Sub Sum (A ( ) As Integer)

A(3) = A(1) + A(2)

End Sub

Sub Form_Click ()

Dim X(3) As Integer

X(1) = 1

X(2) = 2

Sum X

Print X(1), X(2), X(3)

End Sub

 

Результат: 1 2 3

 

Если никакое значение не присвоено имени функции, то имя функции принимает значение по умолчанию: числовая функ­ция принимает значение 0, функция, объявленная как String, принимает значение пустой строки нулевой длины (“”), функция, объявленная как Variant принимает значение Empty (значение, которое принимает имя функции, называют возвращаемым значением функции).