Adicionar Referências VBA Excel Automaticamente

Veja neste artigo como marcar referências VBA no Excel automaticamente.

Neste artigo você terá uma planilha de exemplo e o código VBA para marcar e desmarcar referências no Excel automaticamente.

Veja passo-a-passo como fazer este processo

Adicionar Referência VBE

O primeiro passo a ser realizado é Confirmar o acesso a programação do VBE, permitir que seja alterado o VBE via programação VBA.

Porque senão irá ser exibida a mensagem Erro em tempo de execução ‘1004’: e mensagem O acesso de programação ao projeto do Visual Basic não é confiável.

Para evitar este problema clique em Arquivo->Opções->Central de Confiabilidade->Configurações da Central de Confiabilidade…

Marque a opção Confiar no acesso ao modelo de objeto de projeto do VBA.

Com este item marcado conseguirá utilizar o código para realizar o registro das DLLs do Excel no VBA.

Marcar Configuração de Macro do Desenvolvedor

O primeiro passo para usar este código é adicionar a biblioteca Microsoft Visual Basic for Applications Extensibility 5.3 que é a biblioteca de referência do VBA para manipular o próprio VBA.

Então clique no VBA em Ferramentas->Referências e marque a opção Microsoft Visual Basic for Applications Extensibility 5.3 para que possa funcionar o código seguinte.

Listar Todas as Referências do VBA Excel

Para listar todas as referências no Excel realizamos um loop passando por todas as referências.

No caso basta inserir um módulo no Excel e colar o código abaixo.

Pressione as teclas ALT+F11 e clique em Inserir->Módulo e coloque o código abaixo.

<pre lang="vb">
Sub lsMarcarReferencias()
    
    Dim vbProj As VBIDE.VBProject
    Dim vbRefs As VBIDE.References
    Dim vbRef  As VBIDE.Reference
    
    Set vbProj = ThisWorkbook.VBProject
    Set vbRefs = vbProj.References
    
    For Each vbRef In vbRefs
        Debug.Print "Name: " & vbRef.Name
        Debug.Print "Description: " & vbRef.Description
        Debug.Print "GUID: " & vbRef.GUID
        Debug.Print "Major: " & vbRef.Major
        Debug.Print "Minor: " & vbRef.Minor
        Debug.Print "FullPath: " & vbRef.FullPath
        Debug.Print "BuiltIn: " & vbRef.BuiltIn
        Debug.Print "Type: " & vbRef.Type
    Next
End Sub
</pre>

No procedimento lsMarcarReferencias você tem uma lista de todas as referências do VBA, o sitema irá listar as informações das referências que estiverem marcadas no Excel

  • Name
  • Description
  • GUID
  • Major
  • Minor
  • FullPath
  • BuiltIn
  • Type

Ao executar o sistema irá listar os dados das DLLs das referências marcadas no seu VBE, conforme abaixo:

Name: VBA
Description: Visual Basic For Applications
GUID: {000204EF-0000-0000-C000-000000000046}
Major: 4
Minor: 2
FullPath: C:\Program Files\Common Files\Microsoft Shared\VBA\VBA7.1\VBE7.DLL
BuiltIn: Verdadeiro
Type: 0

Assim você tem todas as informações das referências do VBA Excel.

Marcar Referências no VBA Excel

Para marcar as referências no VBE temos o código VBA Excel abaixo que ao ser acionado adiciona as referências do VBA no Excel.

No Excel pressione ALT+F11 e clique em Inserir->Módulo e coloque o código abaixo que realiza a marcação das referências.

Abaixo temos dois tipos de marcação de referência lsMarcarReferenciaFileName e lsMarcarReferenciaGUID as duas fazem marcação de referências à partir de uma chamada.

<pre lang="vb">
Private Sub lsMarcarReferenciaFileName(ByVal lFileName As String)
    Dim vbProj As VBIDE.VBProject
    Dim vbRefs As VBIDE.References
    
    Set vbProj = ThisWorkbook.VBProject
    Set vbRefs = vbProj.References

    vbRefs.AddFromFile Filename:="C:\Program Files\Microsoft Office\root\Office16\Library\SOLVER\SOLVER.XLAM"
End Sub

Private Sub lsMarcarReferenciaGUID(ByVal lGUID As String)
    Dim vbRefs As VBIDE.References
    Set vbRefs = vbProj.References

    vbRefs.AddFromFile GUID:=lGUID
End Sub

Private Sub lsMarcarReferenciaFileName(ByVal lFileName As String)
    Dim vbProj As VBIDE.VBProject
    Dim vbRefs As VBIDE.References
    
    Set vbProj = ThisWorkbook.VBProject
    Set vbRefs = vbProj.References

    vbRefs.AddFromFile Filename:=lFileName
End Sub

Sub lsMarcar()
    lsMarcarReferenciaFileName "C:\Program Files\Microsoft Office\root\Office16\Library\SOLVER\SOLVER.XLAM"
End Sub

Sub lsMarcarGUID()
    'Microsoft ActiveX Data Objects Recordset 6.0 Library
    lsMarcarReferenciaGUID "{00000300-0000-0010-8000-00AA006D2EA4}"
End Sub

Sub lsDesmarcar()
    lsExcluirReferencias "Solver"
End Sub
</pre>

Os procedimentos inclusos foram:

  • lsMarcarReferenciasGUID: Marca as referências pelo GUID. Basta passar então o GUID da referência, que você pode pegar pelo lsMarcarReferencias que passamos antes. Um exemplo de GUID: {00000300-0000-0010-8000-00AA006D2EA4}
  • lsMarcarReferenciaFileName: Neste campo passamos o FileName como por exemplo: C:\Program Files\Microsoft Office\root\Office16\Library\SOLVER\SOLVER.XLAM.
  • lsDesmarcar: Para remover uma referência passe apenas o nome da referência, por exemplo “Solver”

Download Exemplo Marcar Referências no VBA Excel

Realize o download da planilha de exemplo de marcar referências no VBE com o código pronto no Excel neste botão abaixo. Basta se inscrever na nossa newsletter gratuita para o download automático.

Baixe a planilha

Curso Excel Completo – Do Básico ao VBA

Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo:

Avalie este post

Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel

plugins premium WordPress