Методы автоматизации при работе в MS Excel. Синявская Г.А. - 28 стр.

UptoLike

Составители: 

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