VBA Llamar / Ejecutar Subprocedimiento desde otro Subprocedimiento
In this Article
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.
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
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
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
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!Learn More!