Llamar a procedimientos Sub y Function

Para llamar a un procedimiento Sub de otro procedimiento, escriba el nombre del procedimiento e incluya los valores para los argumentos requeridos. La instrucción Call no es necesaria, pero si la usa, debe poner los argumentos entre paréntesis.

Puede usar un procedimiento Sub para organizar otros procedimientos para que sean más fáciles de comprender y de depurar. En el siguiente ejemplo, el procedimiento SubMain llama al procedimiento SubMultiBeep y pasa el valor 56 para su argumento.

Después de que MultiBeep se ejecute, el control vuelve a Main y Main llama al procedimiento SubMessage. Message muestra un cuadro de mensaje; cuando el usuario hace clic en Aceptar, el control vuelve a Main y Main finaliza.

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

Nota:

¿Le interesa el desarrollo de soluciones que amplían la experiencia de Office en varias plataformas? Vea el nuevo modelo de complementos de Office. Los complementos de Office tienen una huella pequeña en comparación con los complementos y soluciones de VSTO, y se pueden construir utilizando casi cualquier tecnología de programación web, como HTML5, JavaScript, CSS3 y XML.

Llamar a procedimientos Sub con más de un argumento

El siguiente ejemplo muestra dos formas de llamar a un procedimiento Sub con más de un argumento. La segunda vez que se llama, son obligatorios los paréntesis entre los argumentos debido a que se usa la instrucción 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 "You cannot afford this house." 
 Else 
 MsgBox "This house is affordable." 
 End If 
End Sub

Use paréntesis al llamar a los procedimientos de función

Para usar el valor devuelto de una función, asigne la función a una variable y ponga los argumentos entre paréntesis, como se muestra en el siguiente ejemplo.

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

Si no está interesado en el valor devuelto de una función, puede llamar a una función de la misma forma que llama a un procedimiento Sub. Omita los paréntesis, enumere los argumentos y no asigne la función a una variable, como se muestra en el siguiente ejemplo.

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

Si se incluyen paréntesis en el ejemplo anterior, la instrucción provoca un error de sintaxis.

Pasar argumentos con nombre

Una instrucción en un procedimiento Sub o Function puede pasar valores a procedimientos llamados con argumentos con nombre. Puede enumerar argumentos con nombre en cualquier orden. Un argumento con nombre consta del nombre del argumento seguido por un punto, un signo de igual (:=) y el valor asignado al argumento.

En el siguiente ejemplo se llama a la función MsgBox con argumentos con nombre sin ningún valor devuelto.

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

En el siguiente ejemplo se llama a la función MsgBox con argumentos con nombre. El valor devuelto se asigna a la variable.

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

Vea también

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.