Beispiel Brief

Es soll ein Dokument hergestellt werden welches beim öffnen automatisch eine Dialogbox zur Abfrage von: "Nachname, Vorname, Adresse, PLZ, Ort" anzeigt. Sobald der Anwender die Daten erfasst hat, sollen diese durch ein VB-Programm an die entsprechenden Positionen im Text eingefügt werden.

Vorbereiten des Dokumentes

Erstellen Sie das Grundgerüst eines Briefes. Anstelle der Informationen von Nachname, Vorname, Adresse, PLZ und Ort fügen sie Formularfelder ein.

Private Sub cmdOk_Click()
    With ActiveDocument
        .FormFields("tmVorname").Result = Me.tbVorname
        .FormFields("tmNachname").Result = Me.tbNachName
        .FormFields("tmAdresse").Result = Me.tbAdresse
        .FormFields("tmPLZ").Result = Me.tbPLZ
        .FormFields("tmOrt").Result = Me.tbOrt
        If Me.obMann.Value = True Then
            .FormFields("tmGeschlecht").Result = "r"
            .FormFields("tmAnrede").Result = "Herr"
        Else
            .FormFields("tmGeschlecht").TextInput.Clear
            .FormFields("tmAnrede").Result = "Frau"
        End If
        .FormFields("tmAnredeName").Result = Me.tbNachName
    End With
    Me.Hide
End Sub

Obiger Code ist im Codeteil des Formular gespeichert. Durch einen Doppelklick auf das Formular und dann doppelklick auf das gewünschte Feld kann der Code angezeigt werden.

Damit die Dialogbox immer beim erstellen eines neuen Briefes aufgerufen wird sollte:

  1. Das Word-Dokument als Vorlage gespeichert werden.
  2. Eine Procedur mit dem Namen AutoNew() erstellt werden welche die Dialogbox anzeigt.

Weitere Auto-Funktionen sind: AutoClose, AutoPrint, AutoExec, AutoOpen. Es ist zu beachten dass diese Procedur entweder im Dokument oder in einem Modul des Projektes (der Vorlage) gespeichert ist.

Nun kann noch eine Symbolleiste erstellt werden mit einem Symbol welches auf Bedarf ebenso die Dialogbox aufruft.

Sub AutoNew()
   Call DlgAnzeigen
End Sub

Sub DlgAnzeigen()
    With frmDateneingabe
        .tbVorname = ActiveDocument.FormFields("tmVorname").Result
        .tbNachName = ActiveDocument.FormFields("tmNachName").Result
    End Witdh
    frmDateneingabe.Show
End Sub