Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Access und Word, Teil 1: Word starten

Das automatisierte ffnen von Word-Dokumenten ist fr die verschiedensten Zwecke interessant: Sie knnen den Inhalt bestehender Dokumente einlesen, diese bearbeiten der Daten in leere Dokumente einfgen. Im vorliegenden Beitrag lernen Sie eine Funktion kennen, die ein Word-Dokument ffnet und eine Objektvariable mit einem Verweis auf das geffnete Dokument zurckgibt.

Beispieldatenbank

Die Beispieldatenbank enthlt alle Beispiele zu den einzelnen Teilen dieser Betragsreihe. Fr den vorliegenden Beitrag dient das Formular frmWord als Beispiel. Das Formular enthlt eine Schaltflche, die eine Prozedur zum ffnen von Word aufruft.

ffnen einer Word-Instanz per VBA

Bevor Sie von Access aus per VBA auf Word zugreifen, berlegen Sie sich, ob Sie Early Binding oder Late Binding verwenden mchten. Kurzgefasst setzen Sie bei Early Binding einen Verweis auf die Word-Bibliothek und deklarieren alle verwendeten Objekte mit den entsprechenden Objekttypen. Das hat den Vorteil, dass Sie eine bessere bersicht haben; zustzlich knnen Sie beim Entwickeln mit dem VBA-Editor die Vorzge von Microsoft Intellisense genieen. Bei Late Binding setzen Sie keinen Verweis und deklarieren alle Objekt mit dem Variablentyp Object. Damit verzichten Sie auf Intellisense, haben aber sicher keine Versionsprobleme.

Wie Sie einen Verweis auf eine Bibliothek setzen, erfahren Sie im Beitrag Verweise setzen.

Anschlieend verwenden Sie folgende Prozedur, um Word zu ffnen. Die Prozedur versucht zunchst, mit der Variablen objWord auf eine vorhandene Instanz von Word zu verweisen. Wenn Word nicht geffnet ist, lst das einen Fehler aus, der durch die Fehlerbehandlung abgefangen wird. Die Fehlerbehandlung ffnet im gleichen Zuge eine neue Instanz von Word. Mit dem Setzen der Eigenschaft Visible auf den Wert True und die Methode Activate wird Word sichtbar gemacht und aktiviert.

Die beiden Anweisungen objWord.Quit und Set objWord = Nothing sind derzeit auskommentiert, damit das Ergebnis der Prozedur sichtbar bleibt.

Private Sub cmdWordStarten_Click()

    Dim objWord As Word.Application

    On Error GoTo cmdWordStarten_Click_Err

    Set objWord = GetObject(, "Word.Application")

    objWord.Visible = True

    objWord.Activate

cmdWordStarten_Click_Exit:

    'objWord.Quit

    'Set objWord = Nothing

    Exit Sub

cmdWordStarten_Click_Err:

    If Err.Number = 429 Then

        Set objWord = CreateObject("Word.Application")

        Resume Next

    Else

        MsgBox "Fehler-Nr: " & Err.Number & vbCrLf & "Fehler-Beschreibung: " & Err.Description

    End If

End Sub

Schlieen von Word

Wenn Sie obige Prozedur noch um Funktionen zum Erstellen oder ffnen von Dokumenten oder zu deren Bearbeitung ergnzen, sollten diese natrlich anschlieend wieder geschlossen werden. Beachten Sie dabei, dass Word bereits geffnet sein knnte und dass der Benutzer etwas berrascht sein knnte, wenn seine Word-Instanz pltzlich nicht mehr da ist. Fr diesen Fall sollten Sie eine entsprechende berprfung vorsehen.

 

© 2003-2015 André Minhorst Alle Rechte vorbehalten.