Ejecutar macros de otro archivo de Excel con Run y Call

Para este artículo vamos a hacer uso del método Application.Run y de la instrucción Call. Las dos nos servirán para mandar llamar procedimientos o funciones de otro libro de Excel o de un módulo en específico dentro del mismo.

IDE de vba

Figura1. IDE de vba.

Application.Run (Método)

Este método ejecuta una macro o manda llamar a una función. Se puede usar para ejecutar una macro de Visual Basic o incluso de una función dentro de una DLL.

Call (Instrucción)

Esta instrucción transfiere el control a un procedimiento o una función. Aunque realmente esta instrucción es opcional. Si conocemos el nombre del procedimiento basta con escribirlo en una línea y se ejecuta. Pero es recomendable para cuestiones de lectura de código.

Ejecutar macros de otro libro de Excel

Para ejecutar una macro que se encuentre en otro libro de Excel usamos el métudo Run antes mencionado.

Vamos a suponer que tenemos un Libro2.xlsm el cual contiene un macro llamada Macro1. Usaremos el siguiente código.

Application.Run “Libro2.xlsm!Macro1”

El ejemplo anterior es tomando en cuenta que tenemos en el Libro2 sólo una Macro1. ¿Pero qué sucede si tenemos otra Macro1 en otro módulo? Para eso definimos el nombre del módulo donde está la macro.

Application.Run “Libro2.xlsm!Módulo1.Macro1”

Ejecutar macros de otro módulo del mismo archivo

Como vimos en el ejemplo anterior, para llamar una macro del otro módulo, basta con anteponer el nombre de dicho módulo y después el nombre de la macro o función.

Podremos usar la instrucción Call de manera opcional.

Call Módulo2.Macro1

ó

Call ThisWorkbook.Macro1

You may also like...