VBA Tips - Referenciando a GUID - Globally Universal Identifier


Pharmaceutical drugs




Para programadores que desejam desenvolver integrações VBA entre as aplicações do MS Office, devem necessariamente adicionar uma referência na aplicação para que a mesma funcione, é possível fazer através do próprio VBA.




As referências podem ser vistas no VBE pelo menu Ferramentas >> Referências:









A janela abaixo é mostrada:









Acima observamos como adicionar ou remover referências para que outras classes possam ser executadas no VBA. 
Bem, agora que sabemos fazer isso de modo manual, vamos fazê-lo programaticamente.






O primeiro passo para adicionar uma referência é seu GUID. O GUID significa Globally Universal Identifier, e corresponde à uma sequência de 32 caracteres hexadecimais. Cada referência no VBA possui um GUID único.
Para listarmos todos os GUID, podemos usar a rotina abaixo:
Sub AllReferenceList()      Dim i As Long    
    Debug.Print "Referência", "GUID", , , "Caminho"            For i = 1 To ThisWorkbook.VBProject.References.Count          With ThisWorkbook.VBProject.References(i)              Debug.Print .Name, .GUID, .FullPath          End With      Next i  End Sub
Pode ser que obtenha o erro abaixo ao tentar executar essa rotina:









Isso acontece porque a rotina necessita ler informações do editor VBE. Por padrão, o Excel não permite que rotinas de VBA faça essa leitura. Para destravar isso, vá em Arquivo | Opções:









Uma janela aparecerá. Clique em Central de Confiabilidade e em seguida em Configurações da Central de Confiabilidade:









Uma nova janela aparecerá. Clique em Configurações de Macro, marque a Caixa de Seleção Confiar no acesso ao modelo de objeto do projeto do VBA e em seguinda clique em OK:









Execute a macro novamente. O resultado final será algo como:













Sabendo-se o GUID da referência que se deseja adicionar, use a rotina:










Sub AdicionarReferência()           
Dim strGUID As String             'Mude a GUID abaixo para a referência que precisar      'Neste exemplo, a referência é ao Word 2010      
Let strGUID = "{00020905-0000-0000-C000-000000000046}"             'Suprimir erros para tratá-los posteriormente      
On Error Resume Next             'Adicionar referência      
ThisWorkbook.VBProject.References.AddFromGuid GUID:=strGUID, Major:=1, Minor:=0             'Em caso de erro:      
Select Case Err.Number         
 Case Is = 32813               'A referência já estava habilitada               
MsgBox "A referência habilitada." _
                 , vbInformation _
                 , "Informação"          
Case Is = vbNullString               'A referência foi adicionada com sucesso               
MsgBox "Referência adicionada." _
                 , vbInformation _
                 , "Informação"          
Case Else              'Um erro desconhecido foi encontrado              MsgBox "Erro encontrado " & vbNewLine _
                & "durante tentativa de adicionar referência." _
                , vbCritical _
                , "Erro!"     
 End Select            
On Error GoTo 0  End Sub





Tags: VBA, Office, application, GUID, reference, Globally Universal Identifier,




Inline image 1

Nenhum comentário:

Postar um comentário

diHITT - Notícias