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