Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

¿Qué es Call en VBA y como se usa?

| 16 comentarios

Call en VBA nos permite ejecutar una macro desde otra macro, es decir invocar la macro desde otro procedimiento (Sub o Function) como si fuera un procedimiento cualquiera.

Al utilizar Call para llamar a tal procedimiento  requerirá que los argumentos estén encerrados en paréntesis, si este procedimiento no tuviera argumentos no se colocaran.

Ejemplo del modo de uso, tenemos dos procedimientos diferentes pero que cumplen la misma función, Proc1 uno no recibe parámetros mientras que Proc2 si recibe parámetros.

Sub Proc1()

MsgBox "Hola mundo"

End Sub

Sub Proc2(mensaje As String)

MsgBox mensaje

End Sub

En el caso del Proc1

Si se desea llamar el procedimiento con Call se realizara de la siguiente forma:

Sub principal1()

Call Proc1

End Sub

Si se obviara Call simplemente se llamaría de la siguiente forma:

Sub principal2()

Proc1

End Sub

En el caso del Proc2

Si se desea llamar el procedimiento con Call se realizara de la siguiente forma ya que requiere de un argumento y este deberá estar entre paréntesis.

Sub principal3()

Call Proc2("Hola mundo")

End Sub

Si se obviara Call simplemente se llamaría de la siguiente forma y en este caso no se colocarían los paréntesis simplemente el argumento:

Sub principal4()

Proc2 "Hola mundo"

End Sub

Para todas las formas de llamar en estos casos el resultado será una ventana con el mensaje: hola mundo

 Documento:  ¿Qué es Call en VBA y como se usa?

En el archivo de Excel anexado se podrá probar los diferentes procedimientos cuando se acceda al VB de la pestaña programador, ubicándose en el macro que desea ejecutar y presionando F5

Nota: No es requerido usar Call cuando se llama a un procedimiento ya que no hace nada adicional que otras formas de métodos de llamado; esta a quedado es del antiguo VB en donde siempre debía haber una keyword antes de una sentencia algo que ya no sucede ahora.En pocas palabras podríamos escribir simplemente el nombre de la macro y obviar la palabra Call, salvo que el proceso use 2 o más  parámetros en cuyo caso es obligatorio el uso de call.

Elaborado por: Walther Eduardo Reque Olano

16 comentarios

Deja una respuesta

Los campos requeridos estan marcados con *.