ich komme mal wieder mit einer ComatePlus-Anfrage zu euch.
Ich würde gerne im Footer (oder Header) einen Platzhalter ersetzen, z.B. #datum. Der Rest des Footers ist in bestimmter Weise angeordnet und soll sich nicht verändern.
Bisher besteht die Lösung darin, das Worddokument als XML abzuspeichern und mit
Code: Alles auswählen
SetXMLNodeText(*CurrentNode, newText)
Code: Alles auswählen
SaveXML(xmldatei, Pfad)
Nun bin ich auf die Idee gekommen, den Platzhalter mit ComatePlus zu ersetzen. Dabei bin ich dann nach zahlreichen Versuchen übergegangen erstmal eine VBA-Version hinzubekommen. Da wird zwar der Platzhalter ersetzt, aber die formatierte Fußzeile sieht beim Zurückschreiben immer anders aus. Hier mal zwei Versuche:
Code: Alles auswählen
Dim strHeader As String
strHeader = ActiveDocument.StoryRanges(wdPrimaryHeaderStory)
strHeader = Replace(strHeader, "#datum", "25.03.2019")
strHeader = Left(strHeader, Len(strHeader) - 1)
ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range.Text = strHeader
Code: Alles auswählen
Dim rngFoot As Word.Range 'Quelle
Dim rngFootZiel As Word.Range 'Ziel
Set rngFoot = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range.FormattedText
Set rngFootZiel = ActiveDocument.Sections(1).Footers(wdHeaderFooterPrimary).Range
'MsgBox strHeader
rngFoot = Replace(rngFoot, "#now", "25.03.2019")
rngFootZiel.Collapse wdCollapseStart
rngFootZiel.FormattedText = rngFoot.FormattedText
Die Hoffnung ist, den bestehenden VBA-Code in ComatePlus zu übersetzen.
Vielleicht hat ja jemand eine direkte Lösung oder zumindest zu meinen Ansätzen.
Viele Grüße
Meier