Lotus Notes / Domino Sonstiges > Tipps und Tricks
TIPP: Klasse für Word - Automation
Axel:
"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
MatzeW:
Hallo Miteinander,
Habe ein Kleines Script erstellt das ein paar Textzeilen vom Notes ins Word über gibt.
Nun möchte ich das es im Word etwas schöner aussieht. Nur bekomme ich das mit
der Formatierung nicht hin.
Bei versuch mit
Call wordObject.Selection.SetFontAttributes("Arial", 14, False, True, True)
erhalte ich die Meldung "Instance member SetFontatributes does not exist."
Call wordObject.Selection.Font.Name("Arial")
erhalte ich die Meldung "Microsoft Word: 'Name' ist keine Methode"
Weis jemand wie man Formatierung in Word in Notes ansprechen kann. Für Jede Hilfe
bin ich sehr Dankbar
Driri:
Ist die erste Fehlermeldung genau so ? Weil dann hast Du einen Schreibfehler drin (fehlendes t).
Axel:
Hast du vielleicht den gesamten Code.
Wie wurde die Variable WordObject deklariert und initialisiert?
Axel
MatzeW:
Sorry die habe mich bei der Fehlermeldung in der Eile verschrieben.
Die erste Meldung lautet:
"Instance member SETFONTATTRIBUTES does not exist"
Hier die deklaration
Dim wordObject As Variant, actDoc As Variant
Dim oSec As Variant
Dim s As New NotesSession
Dim TempArray As Variant
Dim ThisField As String
Dim doc As NotesDocument
Dim db As notesdatabase
Dim dc As NotesDocumentCollection
Dim TempOutput As String
Dim TempOutput1 As String
Set db = s.CurrentDatabase
Set dc=db.UnProcessedDocuments
Set wordObject = CreateObject ("Word.Application")
wordObject.Documents.Add
wordObject.Visible = True
Set actDoc = wordObject.ActiveDocument
Set oSec =actDoc.Sections(1)
Call wordObject.MailingLabel.CreateNewDocument ( "C1453")
.
.
.
.
Call wordObject.SetFontAttributes("Courier New", 14, True, False, False)
Call wordObject.Selection.Font.Name("Arial")
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln