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.
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: