Excel. Трюки и эффекты. Алексей Гладкий
Чтение книги онлайн.

Читать онлайн книгу Excel. Трюки и эффекты - Алексей Гладкий страница 19

СКАЧАТЬ то после присвоения Имяфункции = Значение используется инструкция Exit Function. Если на протяжении выполнения функции не было использовано присвоение Имяфункции = Значение, то возвращается значение по умолчанию для соответствующего типа данных (см. подраздел об инициализации переменных).

      Ниже приведен пример функции, которая вычисляет квадратный корень из переданного ей аргумента (если аргумент меньше нуля, то возвращается значение -1, сигнализирующее об ошибке):

      Function dhSQR(dblValue As Double) As Double

      If dblValue < 0 Then

      ' Недопустимый аргумент функции

      dhSQR = -1

      Else

      ' Вычисление квадратного корня

      dhSQR = Sqr(dblValue)

      End If

      End Function

      Вызов функций

      Для вызова функций допускается также использовать инструкцию Call, например:

      Call dhSQR(16.324)

      или

      dhSQR 16.324

      Однако при этом теряется возвращаемое функцией значение. Для использования возвращаемого значения идентификаторы функций необходимо включать в выражения справа от знака равенства или другого оператора. Тогда в момент вычисления значения выражения, в состав которого входит идентификатор функции, происходит вызов данной функции, а возвращенное ей значение подставляется в исходное выражение вместо идентификатора функции. Например, в результате обработки каждого из следующих выражений в переменную dblRes будет записано значение 5:

      dblRes = dhSQR(25)

      dblRes = 1 + dhSQR(16)

      Точно таким же образом вызываются все встроенные функции VBA, например

      IsArray, SQR и Array.

      Особенности передачи параметров

      При создании и использовании процедур и функций необходимо учитывать некоторые особенности передачи параметров в них. Они общие для процедур и функций. Рассмотрим данные особенности.

Позиционная передача параметров

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

      Sub Procedure(Optional intA As Integer = 25, Optional intB As Integer)

      ' Инструкции процедуры

      …

      End Sub

      Вызов данной процедуры с использованием позиционной передачи параметров выглядит следующим образом:

      Procedure 12, 56

      или

      Call Procedure (12, 56)

      Отдельного внимания заслуживает передача необязательных параметров. Необязательные параметры можно пропустить, тогда им будет присвоено значение по умолчанию (см. подраздел об объявлении процедур). Ниже приведены примеры вызова процедуры Procedure с пропуском некоторых параметров по умолчанию:

      Procedure 12 Пропущен второй параметр

      Procedure, СКАЧАТЬ