Einen Verweis installieren oder deinstallieren 01.06.2002
 

Vor der Benutzung spezieller Routinen, die einen separaten Verweis benötigen,
sollte geprüft werden, ob dieser Verweis installiert ist.
Um Ihre Anwendung professionell wirken zu lassen empfiehlt es sich,
diesen Verweis nach einer Benutzeraufforderung selbst installieren zu lassen.
Die Problematik bei diesem Thema:
Um einen Verweis zu installieren muss der gesamte Pfad zur entsprechenden
Datei angegeben werden.
Dies ist i.d.R. nicht auf allen System der gleiche Pfad.
Daher muss man zuvor spezielle Ordner aus dem System ermitteln.

Im nachfolgenden Beispiel soll ein Verweis zu Microsoft Outlook
erstellt werden.

Zunächst also eine Funktion, die überprüft ob ein Verweis
installiert ist:

Function Verweis_installiert(Verweisname) As Boolean
    Verweis_installiert = False
    Set VBE = Application.VBE.ActiveVBProject
    With VBE
        For x = 1 To .References.Count
            If UCase(.References(x).Name) = UCase(Verweisname) Then
                Verweis_installiert = True
                Exit Function
            End If
        Next x
    End With
End Function
Sub Testen()
    MsgBox Verweis_installiert("Outlook")
End Sub

Unser Verweis hat den Namen "Outlook".
Das Beispiel bezieht sich auf Excel 2000. Dort ist die Datei "msoutl.olb"
für die Zusammenarbeit mit Outlook zuständig.
Diese Datei befindet sich im Ordner "Microsoft Office\Office".
Abweichungen von diesem Ordner sind natürlich möglich.
Entscheiden ist der Unterordner "Office",
dieser wird an den korrekten Pfad angehängt.
Application.Path hilft uns dabei: 
Sub Installieren()
    'prüfen, ob der Verweis installiert ist
    If Not Verweis_installiert("Outlook") Then
        x = MsgBox("Der Verweis zu Outlook ist nicht aktiviert." _ 
            & vbNewLine & "Soll er jetzt aktiviert werden ?", _
            vbYesNo + vbQuestion, "Frage")
        If x = vbYes Then
            'Office Ordner ?
            Ordner = Application.Path
            'ggf. einen Backslash anhängen
            If Right(Ordner, 1) <> "\" Then Ordner = Ordner & "\"
            'vollen Dateinamen zusammensetzen
            Dateiname = Ordner & "msoutl9.olb"
            'existiert diese Datei ?
            If Dir(Dateiname) <> "" Then
                'Ja, dann Verweis setzen
                Set VBE = Application.VBE.ActiveVBProject
                VBE.References.AddFromFile Dateiname
            Else
                'Nein, dann entsprechender Hinweis 
                MsgBox "Die Datei " & Dateiname & _
                  " wurde nicht gefunden !"
            End If
        End If
        '
        'An dieser Stelle kann mit Outlook gearbeitet werden
        '
        'Verweis anschließend wieder deaktivieren !
        '
    Else
        MsgBox "Der Verweis ist bereits aktiviert !"
    End If
End Sub
Das Deaktivieren des Verweise gestaltet sich etwas kürzer:
Sub Deinstallieren()
    Verweisname = "Outlook"
    'ist der Verweis aktiviert ?
    If Verweis_installiert(Verweisname) Then
        'Ja, dann Abfrage zum Deaktivieren
        x = MsgBox("Der Verweis ist aktiviert !" _
            & vbNewLine & "Soll er jetzt deaktiviert werden ?", _
            vbYesNo + vbQuestion, "Frage")
           'Er soll deaktiviert werden
           If x = vbYes Then
              'Verweis deaktivieren 
              ActiveWorkbook.VBProject.References.Remove _
                 ThisWorkbook.VBProject.References("Outlook")
           End If
    Else
       'Hinweis, wenn der Verweis nicht aktiviert ist
       MsgBox "Der Verweis ist nicht aktiviert !"
    End If
End Sub