Lotus Notes / Domino Sonstiges > Tipps und Tricks

TIPP: Klasse für Word - Automation

(1/3) > >>

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