Domino 9 und frühere Versionen > Entwicklung

Erzeugen von Tabellen in MS-Word

<< < (2/3) > >>

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