Como usar a função GetObject em VBA?

A função `GetObject` em VBA é usada para obter a referência a um objeto que já está em execução. Ela pode ser especialmente útil para interagir com aplicativos do Microsoft Office que já estão abertos, como Excel, Word, ou Access. Aqui está um guia básico sobre como usar a função `GetObject`.

Sintaxe Básica

Set objectVariable = GetObject([pathname] [, class])
  • pathname: Esta é uma string opcional que especifica o caminho completo do arquivo que contém o objeto. Se você fornecer o pathname, deve ser o caminho completo para um documento existente. Caso contrário, o VBA tenta obter um servidor ativo de classe especificada.
  • class: Esta é uma string opcional que representa o nome da classe do objeto. Tem o formato `appname.objecttype` (por exemplo, “Excel.Application”). Se você não fornecer um caminho, esta string é necessária para identificar a classe do objeto que você deseja.

Exemplos de Uso

  • Obter um Objeto de um Documento Existente

Se você quiser obter o objeto de uma instância de um aplicativo da Microsoft já em execução, pode especificar o pathname do arquivo. Por exemplo, para abrir um documento do Excel:

   Dim xlApp As Object
   Dim xlBook As Object

   ' Abre o workbook especificado e retorna a referência ao workbook
   Set xlBook = GetObject("C:CaminhoParaSeuArquivo.xlsx")
   
   ' Obtém a aplicação do Excel a partir do workbook
   Set xlApp = xlBook.Application

   ' Agora pode usar xlApp para manipular o Excel
   xlApp.Visible = True  ' Torna o Excel visível
  • Obter um Objeto Aplicativo em Execução

Caso você queira apenas obter a aplicação sem se referir a um arquivo específico (se o aplicativo já estiver em execução):

   Dim xlApp As Object

   ' Obtém a aplicação do Excel em execução
   Set xlApp = GetObject(, "Excel.Application")
   
   ' Agora pode usar xlApp para manipular a aplicação
   xlApp.Visible = True  ' Torna o Excel visível

Considerações

  • Se o objeto que você está tentando acessar não estiver em execução, o `GetObject` lançará um erro. Você pode usar o tratamento de erros para lidar com essa situação e talvez iniciar o aplicativo se não estiver em execução.
  • Use `CreateObject` se precisar iniciar uma nova instância de um aplicativo.
  • Certifique-se de liberar os objetos (`Set objectVariable = Nothing`) quando terminar, para liberar recursos.

Esses exemplos devem fornecer uma base sólida para começar a usar `GetObject` no VBA. Caso específico algum comportamento ou configuração dependa de versões específicas dos aplicativos ou do VBA.

Unlock Your Potential

Excel

Basic - Advanced

Access

Access Basic - Advanced

Power BI

Power BI Basic - Advanced

Help us grow the project