"Notes und Drucken, zwei Welten treffen aufeinander." So kann man das Thema Drucken bei Notes umschreiben, obwohl in der Version 5 die Druckfunktion etwas erweitert wurde. Was liegt näher daran, ein parallel installiertes Office für die Ausgabe zu nutzen. Aus diesem Grund entstand diese Klasse für die Word-Automation. Sie stellt Grundfunktionen bereit um Dokumente auf Basis von Druckformatvorlagen zu erstellen, Daten zu übergeben, Text zu formatieren und Serienbriefe zu erstellen.
Mit Kenntnis der VBA-Syntax lassen sich die Klassen auch um weitere Funktionen, z.B. Tabellenfunktionen erweitern. Die angehängte Demo-Datenbank enthält die notwendigen Bibliotheken und 3 Beispielagenten.
Die Verwendung der Klassen ist denkbar einfach. Es muß lediglich ein Verweis auf die entsprechende Script-Bibliothek libWord eingefügt werden.
Die Codierung wird hier beispielhaft am Korrespondenz-Agenten (ausschnittsweise) gezeigt:
...
Dim cWord As cWord 'Variable deklarieren
Dim strVorlage As String
"strVorlage = c:\temp\vorlage.dot"
'Neue Instanz der Klasse cWord
Set cWord = New cWord
'Neues Dokument auf Basis der Vorlage erstellen. Dot muß nicht im Vorlagenverzeichnis liegen
Call cWord.CreateNewDoc(strVorlage)
'Einfügen der Daten in entsprechende Formularfelder
strTemp = doc.Anrede(0)
If strTemp = "Herr" Then strTemp = strTemp & "n"
Call cWord.InsertInField("Anrede", strTemp)
Call cWord.InsertInField("Name", doc.Name(0))
Call cWord.InsertInField("Anschrift", doc.Anschrift(0))
Call cWord.InsertInField("Ort", doc.Ort(0))
'Einfügen von Text an einer Textmarke
Call cWord.InsertAtTM("Betreff", "Das ist die Betreffszeile")
'Setzen der Schriftattribute und Einfügen von Text
Call cWord.SetFontAttributes("Courier New", 14, True, False, False) 'Setzen der Schriftattribute
Call cWord.Insert("Das ist Text in Courier New 14pt fett")
Call cWord.NewLine(1) 'Einfügen einer Zeilenschaltung
Call cWord.SetFontAttributes("Times New Roman", 10, False, True, True) ' 'Setzen der Schriftattribute
Call cWord.Insert("Das ist Text in Times New Roman 10pt kursiv und unterstrichen")
'Word in den Vordergrund
Call cWord.ActivateWord
'Ausführen eines Makros in Worddokument mit Parameterübergabe
Call cWord.RunMacroEx ("ShowMessage", "Der Text wurde als Parameter übergeben!")
Delete cWord 'Instanz löschen
...
Axel