Wenn Sie Funktionen aus anderen Anwendungen verwenden möchten, müssen Sie sich entscheiden, ob Sie diese verwenden möchten
frühes oder spätes Binden von Objektvariablen.
Frühe Bindung
Die Bindung zwischen Objektvariable und Objekt erfolgt beim Kompilieren der Anwendung.
Dies führt zu einer besseren Leistung im Vergleich zur Bindung, wenn die Anwendung ausgeführt wird (späte Bindung).
Wenn Sie eine frühe Bindung erstellen möchten, müssen Sie eine Referenz auf die "fremde" Objektbibliothek setzen, die Sie verwenden möchten.
Dies geschieht aus der VBE heraus über das Menü Tools, References… . Wenn ein VBProject einen Verweis auf ein . hat
Objektbibliothek können Sie bestimmte Objektvariablen deklarieren (z.B. Dim oDoc As Word.Document). Das wird es auch schaffen
einfachere Programmierung der "Fremd-Objekte", da die VBE die gleiche Programmierhilfe bezüglich Eigenschaften anzeigt,
Methoden und Ereignisse, die für die Objekte angezeigt werden, die zu der Anwendung gehören, an der Sie arbeiten
ab (der VBE hat diesen Antrag vorab automatisch um den Hinweis ergänzt).
Dies ist ein allgemeines Codebeispiel, das einen vba-Automatisierungsfehler zeigt:
Sub OLEAutomationEarlyBinding() ' xxx durch eines der folgenden ersetzen: ' Access, Excel, Outlook, PowerPoint oder Word Dim oApp As xxx.Application ' Early Binding Dim oDoc As xxx.Document ' Excel.Workbook, Outlook.MailItem, PowerPoint.Presentation , Word.Document On Error Resume Next ' Fehler ignorieren Set oApp = GetObject(, "xxx.Application") ' eine vorhandene Anwendungsinstanz referenzieren If oApp Is Nothing Then ' keine vorhandene Anwendung wird ausgeführt Set oApp = New xxx.Application ' create a neue Anwendungsinstanz End If On Error GoTo 0 ' normale Fehlerbehandlung fortsetzen If oApp Is Nothing Then ' Anwendung kann nicht erstellt werden MsgBox "Die Anwendung ist nicht verfügbar!", vbExclamation End If With oApp .Visible = True ' Anwendungsobjekt erstellen visible ' an dieser Stelle ist die Anwendung sichtbar ' je nach Anwendung etwas tun… Set oDoc = .Documents.Open("c:\Ordnername\Dateiname.doc") ' Dokument öffnen '… oDoc.Close True ' schließen und speichern das Dokument .Quit ' die Anwendung schließen End With Set oDoc = Nothing ' freier Speicher Set oApp = Nothing ' freier Speicher End Sub
Späte Bindung
Die Bindung zwischen Objektvariable und Objekt erfolgt beim Ausführen der Anwendung.
Dies führt zu einer langsameren Leistung im Vergleich zur Bindung beim Kompilieren der Anwendung (frühe Bindung).
Wenn Sie keinen Verweis auf die zur "ausländischen" Anwendung gehörende Objektbibliothek hinzufügen, müssen Sie
deklarieren allgemeine Objektvariablen (z. B. Dim oDoc As Object). Dies wird die Programmierung erschweren
die "Fremd-Objekte", da die VBE bezüglich Eigenschaften nicht die gleiche Programmierhilfe anzeigt,
Methoden und Ereignisse, die für die Objekte angezeigt werden, die zu der Anwendung gehören, von der aus Sie arbeiten.
Dies ist ein allgemeines Codebeispiel:
Sub OLEAutomationLateBinding() ' xxx durch einen der folgenden ersetzen: ' Access, Excel, Outlook, PowerPoint oder Word Dim oApp As Object ' Late Binding Dim oDoc As Object ' Late Binding On Error Resume Next ' Fehler ignorieren Set oApp = GetObject(, "xxx.Application") ' eine vorhandene Anwendungsinstanz referenzieren If oApp Is Nothing Then ' keine vorhandene Anwendung wird ausgeführt Set oApp = CreateObject("xxx.Application") ' eine neue Anwendungsinstanz erstellen End If On Error GoTo 0 ' Normaler Fehler fortsetzen Behandlung If oApp Is Nothing Then ' kann die Anwendung nicht erstellen MsgBox "Die Anwendung ist nicht verfügbar!", vbExclamation End If With oApp .Visible = True 'mache das Anwendungsobjekt sichtbar 'an dieser Stelle ist die Anwendung sichtbar 'je nach Bedarf etwas tun auf der Anwendung… Set oDoc = .Documents.Open("c:\Ordnername\Dateiname.doc") ' Dokument öffnen '… oDoc.Close True ' Dokument schließen und speichern .Quit ' Anwendung schließen End With Set oDoc = Nichts 'freier Speicher oApp einstellen = Nichts' fr ee Speicher Ende Sub