Ich habe ein Problem mit dem Verweis auf eine Object Library: Folgender Code soll bei jeder Office-Version überprüfen, ob der richtige Verweis auf die Outlook Object Library gesetzt ist, und falls nicht, den richtigen setzen. Es gibt dann 3 Möglichkeiten:
- Verweis auf richtige Library ist bereits gesetzt: Kein Problem
- Kein Verweis auf die Outlook Object Library ist gesetzt: Kein Problem
- Falscher Verweis ist gesetzt (andere Office-Version...): PROBLEM! Der Verweis "NICHT VORHANDEN: Microsoft Outlook Object Library ..." wird von meinem Code nicht gelöscht. Kann mir da jemand weiterhelfen? Wäre mega nett! Hier der Code:
Sub Workbook_Open()
'Menublatt aktivieren
shtMenu.Activate
Dim BIBLIO_FILENAME As String
Dim objVBE, oRef, WSHShell As Object
Dim blnFound As Boolean
Set WSHShell = CreateObject("wscript.shell")
Set objVBE = ActiveWorkbook.VBProject.References
'fragt die Office-Version ab und liest den Office-Installationspfad aus der Registry ein
Select Case Application.Version
Case "8.0e"
BIBLIO_FILENAME = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\8.0\BinDirPath") & "\msoutl85.olb"
Case "9.0"
BIBLIO_FILENAME = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\9.0\BinDirPath") & "\msoutl9.olb"
Case "10.0"
BIBLIO_FILENAME = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\10.0\Common\InstallRoot\Path") & "msoutl.olb"
Case "11.0"
BIBLIO_FILENAME = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Common\InstallRoot\Path") & "msoutl.olb"
End Select
'falls keine Outlook-Object-Library vorhanden ist, wird blnFound = False
For Each oRef In objVBE
If UCase(oRef.Name) = UCase(BIBLIO_NAME) Then
'Remove old Reference
objVBE.Remove ThisWorkbook.VBProject.References(oRef.Name)
'Set New Reference
Call SetReference(BIBLIO_FILENAME, objVBE)
End If
Next
'Set New Reference
Call SetReference(BIBLIO_FILENAME, objVBE)
End Sub
Private Function SetReference(ByVal BIBLIO_FILENAME As String, ByVal objVBE As Object)
objVBE.Remove ThisWorkbook.VBProject.References(oRef.Name)
objVBE.AddFromFile BIBLIO_FILENAME
MsgBox "Verweis gesetzt!"
End Function
Gruss Andreas