Domino 9 und frühere Versionen > Entwicklung
Erzeugen von Tabellen in MS-Word
ata:
... danke für die Blumen ;D
ata
ata:
... hatte viel zu tun - hier nun Code-Schnipsel zu MS-WORD-OLE
--- Code: --- ' Konstanten für Word zur Absatzformatierung
Const wdAlignParagraphLeft = 0
Const wdAlignParagraphCenter = 1
Const wdAlignParagraphRight = 2
--- Ende Code ---
' # weitere Konstanten findest du in der Konstanten-DB in der Sandbox...
... Word als Objekt initialisieren
--- Code: --- Dim wordDocObject As Variant
Dim wordAppObject As Variant ' = wordApplicationObject
Dim WordDoc As Variant ' Dokumentvariable für Handling' Instanz zur Klärung, ob Word bereits geöffnet ist
Dim TemplatePath As String
Set wordAppObject = Nothing
On Error Resume Next
Set wordAppObject = GetObject("","Word.Application")
If wordAppObject Is Nothing Then Set wordAppObject = CreateObject("Word.Application")
' Zuweisung des Standartpfades für Vorlagen
TemplatePath = wordAppObject.Options.DefaultFilePath(3)
' Wordfenster
wordAppObject.Visible = True ' # Erstellung vollzieht sich im Frontend - False = nur im Backend
' Öffnen eines neuen Word-File anhand der Standardvorlage und Zuweisung in Variable WordDoc für Handling
Call wordAppObject.Documents.Add(TemplatePath) 'TemplatePath+WordVorlage
Set WordDoc = wordAppObject.ActiveDocument
--- Ende Code ---
... Eine Überschrift mit bestimmter Formatierung einfügen:
--- Code: ---' Absatz mit der Überschrift einfügen
WordDoc.Paragraphs.Add
Set wordParagraphObject = WordDoc.Paragraphs(1)
With wordParagraphObject
.Range.Font.Size = 24
.Range.Font.Bold = True
.Range.Font.Name = "Arial"
.Range.font.ColorIndex = 2 ' Blau
.Range.Text = "Deine Überschrift ' Überschrift
.Alignment = wdAlignParagraphLeft
.SpaceAfter = 20 ' ... bestimmt den Zeilenabstand
End With
--- Ende Code ---
... eine Tabelle erstellen mit 3 Spalten und einer Zeile
--- Code: --- WordDoc.Paragraphs.Add
Set wordParagraphObject = WordDoc.Paragraphs(2)
With wordParagraphObject
.Range.Font.Size = 10
.Range.Font.Bold = False
.SpaceAfter = 3
End With
Set wordRangeObject = wordParagraphObject.Range
Set wordTableObject = WordDoc.Tables.Add(wordRangeObject, 1, 3) ' 1 entspricht Zeilen, 3 entspricht Spalten
' Deaktivieren der Zelenumrandung
With WordDoc.Tables(1).Borders
.InsideLineStyle = wdLineStyleNone
.OutsideLineStyle= wdLineStyleNone
End With
' Neue Zeile in die Tabelle aufnehmen
wordDoc.Tables(1).Rows.Add
--- Ende Code ---
... einer Zelle Werte zuweisen
--- Code: --- Set wordCellObject = WordDoc.Tables(1).Cell(1,1) ' # Cell( Zeile , Spalte )
wordCellObject.Column.Width = 125 ' # Breite
Set wordParagraphObject = WordDoc.Paragraphs.Add (wordCellObject.Range)
With wordParagraphObject
.Range.Font.Size = Size
.Range.Font.Name = "Arial"
.Range.Font.Bold = True
.Range.Text = "Das ist der Text, der eingefügt werden soll"
.Alignment = wdAlignLeft
End With
--- Ende Code ---
... speichern, ausdrucken und beenden der Word-Instanz
--- Code: ---' ### Dokument speichern, Referenz- Instanzenzähler zurücksetzen ######
Pfad = "C:\Temp\Deine_Datei.doc"
Call WordDoc.ActiveWindow.Document.SaveAs(Pfad)
' Ausdruck des Dokumentes
' Call WordDoc.ActiveWindow.Document.PrintOut
Call WordDoc.ActiveWindow.Document.Close
Set wordAppObject = Nothing
Set WordDoc = Nothing
--- Ende Code ---
... bleibt noch zu bemerken - das sind Schnipsel - die Ojekte sind nicht ordentlich dimensioniert - der eigentliche Code muß entsprechend strukturiert erstellt werden...
... ich verwende auch Konstanten aus Word - die müssen noch entsprechend deklariert werden...
... ich hoffe das hilft schon mal ein bißchen...
ata
Alirion:
Hat soweit sehr gut geklappt.
Jetzt ein weiteres Problem:
Wie kann ich in der erzeugten Tabelle Zellen miteinander verbinden und dann Text hinzufügen.
Schließlich soll die Tabelle im entsprechenden Format erscheinen.
Danke vorab!
ata:
... cih ahbe dir oben bereits einen Tip dazu gegeben, wie man an die Objekte herankommt - hast du es damit denn schon mal probiert - ich müßte es mir genau so herauslesen und ausprobieren...
ata
Alirion:
Hat jetzt alles gut geklappt! Danke!
Noch eine Frage:
Wie setze ich den Focus des Word-Objektes auf ein bestimmte Bookmark, damit ich die Tabelle nachträglich formatieren kann?
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln