VBA Bibliotecas


As bibliotecas adicionam estruturas de código pré-definidas (como funções, sub-rotinas entre outras) de maneira simples e facilitada.

No contexto do VBA, uma biblioteca geralmente permite o acesso a novos objetos e funções.


Bibliotecas Padrão

As bibliotecas habilitadas por padrão ao abrirmos o Excel:

Bibliotecas Padrão
  1. Excel – É uma coleção de classes disponíveis no Excel, permitindo trabalhar com objetos da planilha (E.g. pastas de trabalho, planilhas, Ranges, etc...)
  2. Office – É uma coleção de classes genérica para todas as aplicações do pacote Office, permitindo trabalhar com objetos do Office de maneira geral (E.g. barra de comandos, SmartArt, etc...)
  3. stdole – É a coleção padrão da classe OLE, permite a troca de informações entre aplicações
  4. VBA – É a coleção de classes que permite que funções sejam utilizadas (E.g. MsgBox, InputBox, funções String, etc...)
  5. VBAProject – É uma coleção de classes local para a pasta de trabalho ativa (E.g. planilhas, usuários, etc...)

Classe: é o que define a estrutura de um determinado objeto (E.g. para classe Range temos objetos como Range("A1"), Range("C2:B5"), e assim por diante).


Habilitar Bibliotecas

Para acessar, habilitar e desabilitar bibliotecas no VBA:

  1. No Excel, abra o VBE (Alt+F11)
  2. Na Barra de Menus, clique em Ferramentas
  3. Abra Referências (a caixa de diálogo Referências – VBAProject irá aparecer)
  4. Selecione as bibliotecas desejadas
  5. Clique OK
Bibliotecas

Para adicionar uma biblioteca que não se encontra na lista utilize o botão e aponte o arquivo da nova biblioteca.

Habilitar bibliotecas adicionais permite desenvolver códigos que se comuniquem com outras aplicações e processos. E.g. Word, Outlook, DAO (objetos de banco de dados), ADODB (componentes de automação), etc...

Quando fazemos referência no código a uma biblioteca, mas esquecemos de habilitá-la aparece a seguinte mensagem de erro:

Biblioteca Não Referenciada

Pesquisador de Objeto

O pesquisador de objetos permite visualizar a lista de todos os diferentes objetos, métodos e propriedades das bibliotecas habilitadas.

Para pesquisar na biblioteca:

  1. Clique no Pesquisador de objeto na barra de ferramentas ()
  2. Selecione a biblioteca desejada na aba
  3. Navegue pela biblioteca
Pesquisador de Objeto

Em caso de dúvida, selecione o item que se deseja esclarecimentos e pressione o botão de Ajuda da Microsoft ().


VBA Early Binding vs Late Binding

É possível utilizar estruturas de uma biblioteca sem habilitá-la. Esse procedimento é chamado de Late Binding.

Dim OutApp As Object
Set OutApp = CreateObject("Outlook.Application")

Usualmente para se realizar o Late Binding uma variável é declarada como objeto e posteriormente associada com CreateObject.

Quando habilitamos uma biblioteca para acessar suas estruturas estamos realizando o que se chama de Early Binding.

Dim OutApp As New Outlook.Application

No caso do exemplo foi habilitada a biblioteca do Outlook ().


Diferenças Early & Late

Early: Tratando-se do desenvolvimento do código e do tempo de performance, Early Binding é o mais indicado, pois permite utilizar o intellisense do Excel ( + ), bem como o pesquisador de objeto da biblioteca.

Late: Para evitar ao máximo erros compatibilidade, principalmente pela utilização de versões diferentes do Excel (o que altera a versão das bibliotecas), o Late Binding é mais indicado.

Intellisense: é uma ajuda, principalmente de autocompletar o código, com informações úteis ( + ).

Intellisense

Para ganhar prática com as bibliotecas procure escrever os códigos primeiramente com Early Binding e depois transformá-lo em Late Binding ao término.



SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.

Excel ® é uma marca registrada da Microsoft Corporation.

© 2024 SuperExcelVBA | SOBRE

Protected by Copyscape