segunda-feira, 27 de fevereiro de 2012

Executar macro do Excel através de macro do Project

Em muitas aplicações onde precisamos reaproveitar todo o código já existente em uma macro temos a opção de simplesmente acioná-la. Então mostrarei aqui como executar uma macro através de outra macro VBA.


Neste exemplo utilizarei o seguinte cenário:
Através do Project, instanciarei uma aplicação do Excel e então executar uma macro presente dentro de um determinado arquivo Excel chamada Macro1.


Set xl = CreateObject("Excel.Application")

xl.Application.Visible = True

Dim vFile As Variant

vFile = "C:\arquivo.xls"

xl.Application.Workbooks.Open vFile

xl.Application.Run ("Macro1")

Comentário:
Na primeira linha é criado o objeto referente à aplicação do Excel e então deixando visível na segunda linha.
Na quinta linha é aberto uma workbook com o caminho do arquivo xls especificado na quarta linha na variável vFile.
Então na última linha é executado o comando que roda a macro dentro deste arquivo Excel chamada Macro1.

Abrir Excel através de macro do Project

Mostrarei aqui como é feita a abertura de uma nova instância do Excel de dentro de uma macro do Project utilizano VBA.


O código é bem simples.
Você somente irá precisar criar um novo objeto indicando o excel.application como parâmetro entre aspas.


Set xl = CreateObject("Excel.Application")


Com isso você poderá trabalhar normalmente com a variável xl como se estivesse utilizando os métodos presentes para Excel.

Caso também seja necessário visualizar a sua aplicação utilize a propriedade Visible para isso.

xl.Application.Visible = True


Espero ter ajudado pessoal.