VBA Llamar / Ejecutar Subprocedimiento desde otro Subprocedimiento

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on marzo 4, 2022

Este tutorial le enseñará cómo llamar a un subprocedimiento desde dentro de otro subprocedimiento en VBA Es muy útil escribir código que pueda ser usado repetidamente, y llamado desde múltiples subprocedimientos en su proyecto – puede ahorrar una enorme cantidad de tiempo y hace que el código VBA sea mucho más eficiente.

Ejecutar un subprocedimiento desde otro subprocedimiento

Considere los 3 subprocedimientos de abajo:

Sub pruebaRutinas()
   Rutina1
   Rutina2
End Sub
Sub Rutina1()
   MsgBox "Buenos días"
End Sub
Sub Rutina2()
   MsgBox "La fecha de hoy es " & Format(Date, "dd/mm/yyyy")
End Sub

Si ejecutamos el subprocedimiento – TestRoutine – llamará a RunRoutine1 y RunRoutine2 y aparecerán 2 cuadros de mensaje.

llamar subprocedimiento desde subprocedimiento

No hay límite en el número de Sub Procedimientos que puede llamar desde otro Sub Procedimiento.

Uso de la sentencia Call

También puede utilizar la sentencia Call delante del nombre del procedimiento, para que su código sea más fácil de leer. Sin embargo, no tiene ningún efecto sobre cómo se ejecuta o almacena el código.

Sub pruebaRutinas()
   Call Rutina1
   Call Rutina2
End Sub

uso de call

 

Llamada a un sub con argumentos

También es posible llamar a un sub con argumentos

Sub pruebaRutinas()
   Rutina1 ("Diana")
   Rutina2 ("Que tengas un excelente día!")
End Sub
Sub Rutina1(nombre As String)
   MsgBox "Buenos días " & nombre
End Sub
Sub Rutina2(mensaje As String)
   MsgBox "La fecha de hoy es " & Format(Date, "dd/mm/yyyy") & vbCrLf & mensaje
End Sub

llamado subprocedimientos con parametros

 

Llamar a un sub con argumentos nombrados

Si nombras tus argumentos, no tienes que pasarlos en el mismo orden a tus sub rutinas.

Sub PruebaRutina_con_arg_nombrados()
   Rutina1_nueva Saludo:="¿Cómo estás?", Nombre:="Melanie"
End Sub
Sub Rutina1_nueva(Nombre As String, Saludo As String)
    MsgBox "Buenos días " & Nombre & vbCrLf & Saludo
End Sub

llamar rutina con argumentos nombrados

 

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples