Меню Visual Basic

Вызов процедур Sub и Function


Чтобы вызвать процедуру Sub из другой процедуры, следует указать имя этой процедуры и значения для всех требуемых аргументовs. Использование инструкции Call не обязательно, однако если она все же используется, аргументы должны быть заключены в скобки.

Можно использовать процедуру Sub для организации других процедур, это облегчает процесс восприятия этих процедур и их отладку. В следующем примере процедура Sub Main вызывает процедуру Sub MultiBeep, передавая значение 56 для ее аргумента. По окончании работы MultiBeep управление возвращается к Main, и Main вызывает процедуру Sub Message. Message показывает окно сообщения, когда пользователь выбирает мышью OK, управление возвращается к Main, и Main завершается.

Sub Main()

MultiBeep 56

Message

End Sub

Sub MultiBeep(numbeeps)

For counter = 1 To numbeeps

Beep

Next counter

End Sub

Sub Message()

MsgBox "Пора сделать перерыв!"

End Sub

Вызов процедур Sub с несколькими аргументами

Следующий пример показывает два способа вызова процедуры Sub с несколькими аргументами. Когда процедура HouseCalc вызывается во второй раз, аргументы заключаются в скобки, поскольку используется инструкция Call.

Sub Main()

HouseCalc 99800, 43100

Call HouseCalc(380950, 49500)

End Sub

Sub HouseCalc(price As Single, wage As Single)

If 2.5 * wage <= 0.8 * price Then

MsgBox "Этот дом слишком дорогой."

Else

MsgBox "Цена этого дома приемлема."

End If

End Sub

Использование скобок при вызове процедур Function

Чтобы получить возвращаемое значение функции, надо присвоить эту функцию переменной и заключить аргументы в скобки, как показано в следующем примере.

Answer3 = MsgBox("Вам нравится Ваша зарплата?", 4, "Question 3")

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

MsgBox "Конец задачи!", 0, "Список задач"

Внимание! Наличие скобок в предыдущем примере приведет к синтаксической ошибке.

Передача именованных аргументов

Инструкция в процедуре Sub или Function может передавать значения вызываемым процедурам с помощью именованных аргументов. Именованные аргументы можно перечислять в любом порядке. Именованный аргумент состоит из имени аргумента, за которым следует двоеточие, знак равенства (:=) и значение, присваиваемое аргументу.

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

MsgBox Title:="Список задач", Prompt:="Конец задачи!"

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

answer3 = MsgBox(Title:="Question 3", _

Prompt:="Вам нравится Ваша зарплата?", Buttons:=4)



Содержание раздела