Views

Histats

Vitrine

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

LinkWithinBrazilVBAExcelSpecialist

Related Posts Plugin for WordPress, Blogger...