ВУЗ:
Составители:
28
[Optional][ByVal|ByRef] [ParamArray] <имяАргумента> [()] [As <типДанных>]
[=<значениеПоУмолчанию>],
где ключевое слово Optional указывает, что данный аргумент является необяза-
тельным. Если это слово отсутствует, аргумент является обязательным. В спи-
ске аргументов сначала должны присутствовать все обязательные аргументы, и
только после них необязательные. Для необязательного аргумента может быть
указано <значениеПоУмолчанию>, которое будет использоваться, если этот ар-
гумент будет опущен. Когда по логике работы процедура должна понимать, пе-
редано ли ей значение необязательного аргумента, нужно описать этот аргу-
мент как Variant (обязательно) и использовать в процедуре функцию IsMiss-
ing(), которая возвращает значение True , если параметр не передан.
При переменном числе аргументов процедуры используется ключевое
слово ParamArray, после которого описывается аргумент в виде массива типа
Variant . Этот массив, также как и необязательные аргументы, должен быть
последним в списке аргументов процедуры.
Ключевые слова ByVal и ByRef определяют способ передачи параметров
процедуре: ByVal – по значению, ByRef – по ссылке.
Передача значения параметра по ссылке ( ByRef) означает, что на самом
деле процедуре передается адрес соответствующей переменной в памяти. Зна-
чение переменной может быть изменено в теле процедуры, и при выходе из нее
переменная будет иметь это новое значение. Если же фактический параметр пе-
редается по значению (ByVal), то вызываемая процедура получает копию значе-
ния переменной. И как бы переданное значение ни менялось в теле процедуры,
это никак не скажется на значении переменной, которая передавалась в качест-
ве фактического параметра процедуры.
Описание подпрограммы-функции мало чем отличается от описания про-
цедуры-подпрограммы:
Function <имяФункции> (<аргумент1>,<аргумент2>, …) [As <типЗначения>]
<оператор1>
<оператор2>
…
< имяФункции > = <возвращаемоеЗначение>
End Function
Кроме того, что ключевое слово Sub заменяется на Function, в теле про-
цедуры-функции обязательно присутствует оператор присваивания имени
функции какого-нибудь значения. Это значение и возвращается функцией. В
заголовке функции может быть описан тип возвращаемого значения. Если этот
тип не указан, функция возвращает значение Variant. Если такая процедура-
функция описана в стандартном модуле, она появляется при работе с мастером
[Optional][ByVal|ByRef] [ParamArray] <имяАргумента> [()] [As <типДанных>] [=<значениеПоУмолчанию>], где ключевое слово Optional указывает, что данный аргумент является необяза- тельным. Если это слово отсутствует, аргумент является обязательным. В спи- ске аргументов сначала должны присутствовать все обязательные аргументы, и только после них необязательные. Для необязательного аргумента может быть указано <значениеПоУмолчанию>, которое будет использоваться, если этот ар- гумент будет опущен. Когда по логике работы процедура должна понимать, пе- редано ли ей значение необязательного аргумента, нужно описать этот аргу- мент как Variant (обязательно) и использовать в процедуре функцию IsMiss- ing(), которая возвращает значение True , если параметр не передан. При переменном числе аргументов процедуры используется ключевое слово ParamArray, после которого описывается аргумент в виде массива типа Variant . Этот массив, также как и необязательные аргументы, должен быть последним в списке аргументов процедуры. Ключевые слова ByVal и ByRef определяют способ передачи параметров процедуре: ByVal – по значению, ByRef – по ссылке. Передача значения параметра по ссылке ( ByRef) означает, что на самом деле процедуре передается адрес соответствующей переменной в памяти. Зна- чение переменной может быть изменено в теле процедуры, и при выходе из нее переменная будет иметь это новое значение. Если же фактический параметр пе- редается по значению ( ByVal), то вызываемая процедура получает копию значе- ния переменной. И как бы переданное значение ни менялось в теле процедуры, это никак не скажется на значении переменной, которая передавалась в качест- ве фактического параметра процедуры. Описание подпрограммы-функции мало чем отличается от описания про- цедуры-подпрограммы: Function <имяФункции> (<аргумент1>,<аргумент2>, …) [As <типЗначения>] <оператор1> <оператор2> … < имяФункции > = <возвращаемоеЗначение> End Function Кроме того, что ключевое слово Sub заменяется на Function, в теле про- цедуры-функции обязательно присутствует оператор присваивания имени функции какого-нибудь значения. Это значение и возвращается функцией. В заголовке функции может быть описан тип возвращаемого значения. Если этот тип не указан, функция возвращает значение Variant. Если такая процедура- функция описана в стандартном модуле, она появляется при работе с мастером 28
Страницы
- « первая
- ‹ предыдущая
- …
- 26
- 27
- 28
- 29
- 30
- …
- следующая ›
- последняя »