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

Чтобы вызвать процедуру Sub из другой процедуры, введите имя процедуры и включите значения для всех требуемых аргументов.To call a Sub procedure from another procedure, type the name of the procedure and include values for any required arguments. Оператор Call не является обязательным, но в случае его использования вам следует заключить все аргументы в скобки.The Call statement is not required, but if you use it, you must enclose any arguments in parentheses.

Можно использовать процедуру Sub для упорядочения других процедур с целью упрощения их понимания и отладки.You can use a Sub procedure to organize other procedures so they are easier to understand and debug. В приведенном ниже примере процедура Sub Main вызывает процедуру Sub MultiBeep, передавая значение 56 для ее аргумента.In the following example, the Sub procedure Main calls the Sub procedure MultiBeep, passing the value 56 for its argument.

После запуска MultiBeep управление возвращается к Main, и Main вызывает процедуру Sub Message.After MultiBeep runs, control returns to Main, and Main calls the Sub procedure Message. Message отображает окно сообщения; когда пользователь щелкает ОК, управление возвращается к Main, после чего Main завершается.Message displays a message box; when the user clicks OK, control returns to Main, and Main finishes.

Sub Main() 
 MultiBeep 56 
 Message 
End Sub 
 
Sub MultiBeep(numbeeps) 
 For counter = 1 To numbeeps 
 Beep 
 Next counter 
End Sub 
 
Sub Message() 
 MsgBox "Time to take a break!" 
End Sub

Примечание

Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах?Interested in developing solutions that extend the Office experience across multiple platforms? Ознакомьтесь с новой моделью надстроек Office.Check out the new Office Add-ins model. У надстроек Office мало места по сравнению с надстройками и решениями VSTO, которые можно создавать с помощью практически любой технологии веб-программирования, например HTML5, JavaScript, CSS3 и XML.Office Add-ins have a small footprint compared to VSTO Add-ins and solutions, and you can build them by using almost any web programming technology, such as HTML5, JavaScript, CSS3, and XML.

Вызов процедур Sub с несколькими аргументамиCall Sub procedures with more than one argument

В приведенном ниже примере показано два способа для вызова процедуры Sub с несколькими аргументами.The following example shows two ways to call a Sub procedure with more than one argument. При втором вызове аргументы должны быть заключены в скобки, так как используется оператор Call.The second time it is called, parentheses are required around the arguments because the Call statement is used.

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 "You cannot afford this house." 
 Else 
 MsgBox "This house is affordable." 
 End If 
End Sub

Использование круглых скобок при вызове процедур функцийUse parentheses when calling function procedures

Чтобы использовать возвращаемое значение функции, назначьте ее переменной, и заключите аргументы в скобки, как показано в следующем примере.To use the return value of a function, assign the function to a variable and enclose the arguments in parentheses, as shown in the following example.

Answer3 = MsgBox("Are you happy with your salary?", 4, "Question 3") 

Если возвращаемое значение функции вас не интересует, можно вызвать функцию тем же способом, что и процедуру Sub.If you are not interested in the return value of a function, you can call a function the same way you call a Sub procedure. Опустите скобки, укажите аргументы и не назначайте функцию переменной, как показано в следующем примере.Omit the parentheses, list the arguments, and do not assign the function to a variable, as shown in the following example.

MsgBox "Task Completed!", 0, "Task Box" 

Если включить скобки в предыдущий пример, оператор вызывает ошибку синтаксиса.If you include parentheses in the preceding example, the statement causes a syntax error.

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

Оператор в процедуре Sub или Function может передавать значения в вызываемые процедуры с помощью именованных аргументов.A statement in a Sub or Function procedure can pass values to called procedures by using named arguments. Вы можете указывать именованные аргументы в любом порядке.You can list named arguments in any order. Именованный аргумент состоит из имени аргумента, за которым стоит двоеточие и знак равенства (:=), а затем следует присвоенное аргументу значение.A named argument consists of the name of the argument followed by a colon and an equal sign (:=), and the value assigned to the argument.

В примере ниже функция MsgBox вызывается с использованием именованных аргументов без возвращаемого значения.The following example calls the MsgBox function by using named arguments with no return value.

MsgBox Title:="Task Box", Prompt:="Task Completed!" 

В примере ниже функция MsgBox вызывается с использованием именованных аргументов.The following example calls the MsgBox function by using named arguments. Возвращаемое значение присваивается переменной.The return value is assigned to the variable.

answer3 = MsgBox(Title:="Question 3", _ 
Prompt:="Are you happy with your salary?", Buttons:=4) 

См. такжеSee also

Поддержка и обратная связьSupport and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи?Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.