На этом шаге мы рассмотрим различные способы вызова процедур.
Вызов процедуры Sub из другой процедуры можно произвести несколькими способами.
Первый способ вызова процедуры Sub:
ИмяПроцедуры СписокФактическихПараметров
Если требуется использовать несколько процедур с одинаковыми названиями, при их вызове после имени процедуры через точку надо указывать имя модуля, на котором они расположены. А именно,
ИмяМодуля.ИмяПроцедуры СписокФактическихПараметров
Второй способ вызова процедуры Sub производится с помощью инструкции Call.
Call ИмяПроцедуры (СписокФактическихПараметров)
Обратите внимание, что в этом случае список фактических параметров заключается в скобки. В первом способе скобки не использовались.
VBA позволяет вводить фактические параметры через имена аргументов в любом порядке и опускать необязательные (Optional). При этом после имени аргумента ставятся двоеточие и знак равенства, после которого помещается значение аргумента (фактический параметр).
Приведенный ниже пример показывает основные способы передачи параметров в процедуры.
Dim с As Double ' с - глобальный параметр Function F(ByVal x As Integer) As Integer F = x ^ 2 End Function Sub Assistant(ByVal a As Integer, ByVal b As Integer) ' Процедура, находящая сумму двух чисел и выводящая ' результат в диалоговом окне c = а + b MsgBox CStr(c) End Sub Sub Main() ' Процедура, находящая сумму двух чисел и выводящая ' результат в диалоговом окне Dim x, у As Double ' x, у — переменные, используемые в качестве фактических параметров ' Вызов процедуры с конкретными числами как фактическими параметрами Assistant 1, 3 ' Первоначальное присвоение переменным значений, ' с последующим вызовом процедуры х = 1: у = 1 Assistant x, у + 2 ' Использование функции как фактического параметра х = 1: у = 3 Assistant F(x), у ' Вызов процедуры с указанием фактических параметров по имени Assistant a:=1, b:=3 End Sub
На следующем шаге мы закончим изучение этого вопроса.