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
|