Referenser till bibliotek

Att arbeta med referenser till bibliotek skiljer sig avsevärt från andra typer av referenser. Vi har här tillgång till bibliotekens egenskaper, vilket vi i detta exempel nyttjar fullt ut.

Dessa egenskaper beskrivs relativt bra i direkthjälpen varför ingen genomgång sker här.

För att få reda på respektive biblioteks egenskaper kan vi lista de önskade bibliotekens egenskaper i en arbetsbok.
Dock måste vi först manuellt skapa referenser till ett eller flera bibliotek. Det sker i den första proceduren nedan.

 

Option Explicit

 Sub List_ActiveReferences_VBAProject()

   '© 2002 - 2004 Alla rättigheter XL-Dennis

   'Listar alla referenser till den aktiva arbetsboken (VBA-projektet)

   'utan referens till Microsoft Visual Basic for Applications Extensibility 5.3  

   'I XL 97 heter referensen:

   'Microsoft Visual Basic for Applications Extensibility

 

   Dim oVBReference As Object

   Dim wbBook As Workbook

   Dim wsSheet As Worksheet

   Dim i As Long

 

   Set wbBook = ThisWorkbook

   Set wsSheet = wbBook.Worksheets("Sheet1")

 

   Application.ScreenUpdating = False

 

   With wsSheet

      .Range("A1:F1").Value = _

            Array("Description", "Name", "GUID", "Major", "Minor", "Path")

      For Each oVBReference In wbBook.VBProject.References

         i = i + 1

         .Cells(i, 1).Value = oVBReference.Description

         .Cells(i, 2).Value = oVBReference.Name

         .Cells(i, 3).Value = oVBReference.GUID

         .Cells(i, 4).Value = oVBReference.Major

         .Cells(i, 5).Value = oVBReference.Minor

         .Cells(i, 6).Value = oVBReference.Fullpath

      Next oVBReference

      .Columns("A:F").EntireColumn.AutoFit

   End With

 

   Application.ScreenUpdating = True

 

   Set oVBReference = Nothing

End Sub

 

Givet kunskapen om det önskade bibliotekets egenskaper, i synnerhet GUID-egenskapen, kan vi skapa referens till biblioteket på ett effektivt sätt.

Sub Skapa_Referens_Bibliotek()

   '© 2002 Alla rättigheter XL-Dennis

   'Kontrollerar om referens finns till MS Scripting Runtime utan referens till Microsoft Visual Basic for
   'Applications Extensibility 5.3.

   Dim oVBReferens As Object

   Dim wbBok As Workbook

   Dim stGuid As String

 

   Set wbBok = ThisWorkbook

   stGuid = "{420B2830-E718-11CF-893D-00A0C9054228}"

 

   With wbBok

      For Each oVBReferens In .VBProject.References

         If oVBReferens.GUID = stGuid Then

            MsgBox "Finns redan installerad"

            Exit Sub

         End If

      Next oVBReferens

      On Error GoTo Felhantering

      'Här skapas referensen.

      .VBProject.References.AddFromGuid stGuid, 1, 0

      MsgBox "Referensen skapad."

      Exit Sub

   End With

 

Felhantering:

   MsgBox "Kan ej lägga till referens till MS Scipting Runtime" & vbCrLf _

         & " då filen ej finns att tillgå på denna dator."

End Sub

 

Sub TaBort_Referens_Bibliotek()

   '© 2002 Alla rättigheter XL-Dennis

   'Kontrollerar om referens finns till MS Scripting Runtime utan referens till Microsoft Visual Basic for
   'Applications Extensibility 5.3.

   Dim oVBReferens As Object

   Dim wbBok As Workbook

   Dim stBeskrivning As String

 

   On Error GoTo Felhantering

   Set wbBok = ThisWorkbook

 

   'Namnet på referensen måste anges korrekt.

   'För att lista alla namn på skapade referenser kör proceduren ListaAllaReferenser.

   stBeskrivning = "Scripting"

 

   'Här tar vi bort referensen.

   With wbBok.VBProject.References

      .Remove .Item(stBeskrivning)

   End With 

   MsgBox "Referensen borttagen."

 

Felhantering:

   MsgBox "Referensen existerar inte."

   Exit Sub 

End Sub