Guten Tag,
ich habe eine MS Access Datenbank und möchte von daraus eine Kopie der Word-Vorlage erstellen und deren Textmarken füllen.
Leider funktioniert das nicht. Ich habe 2 Ansätze ausprobiert. Der 1. Ansatz setzt zwar den Text, überschreibt aber die Textmarken, so das die Textmarken im Ausgangsdokument verschwunden sind (unter Einfügen /Textmarke sind die Textmarken verschwunden).
Ansatz 2 mit ContenControls tut überhaupt nichts. Er öffnet zwar eine Kopie der Word-Vorlage, aber setzt keinen Text in die Textmarke. Dafür ist die Textmarke aber noch vorhanden, und wird nicht wie im 1. Ansatz überschrieben.
Beide Ansätze funktionieren also nicht... Ich habe leider keine Idee mehr, wo das Problem liegen könnte.
Ansatz 1:
Dim WObj As Object
Dim WDoc As Object
On Error Resume Next
Set WObj = GetObject(, "Word.Application")
On Error GoTo 0
'Wenn keine Instanz läuft, erstelle eine neue
If WObj Is Nothing Then
Set WObj = CreateObject("Word.Application")
End If
'Dokument hinzufügen
Set WDoc = WObj.Documents.Add("PfadZurVorlage\Testvorlage.docx")
'Text in die geschlossene Textmarke einfügen
If WDoc.Bookmarks.Exists("markeName") Then
WDoc.Bookmarks("markeName").Range.Text = Me.txtName
Else
MsgBox "Die Textmarke 'markeName' wurde im Dokument nicht gefunden.", vbExclamation
End If
WObj.Visible = True
WObj.Activate
Ansatz 2:
Dim WObj As Object
Dim WDoc As Object
On Error Resume Next
Set WObj = GetObject(, "Word.Application")
On Error GoTo 0
'Wenn keine Instanz läuft, erstelle eine neue
If WObj Is Nothing Then
Set WObj = CreateObject("Word.Application")
End If
'Dokument hinzufügen
Set WDoc = WObj.Documents.Add("PfadZurVorlage\Testvorlage.docx")
Dim cc As ContentControl
For Each cc In WDoc.ContentControls
Debug.Print "test" 'wird nicht ausgegeben bzw. Schleife wird nicht ausgeführt... Wieso?
If cc.Title = "markeName" Then
If cc.Range.Text <> "" Then
cc.Range.Text = "test"
End If
End If
Next cc
WObj.Visible = True
WObj.Activate
Die Vorlage:
Textmarke füllen nach Variante 1 ergibt folgendes (Textmarke wird überschrieben/verschwindet):
Textmarke füllen nach Variante 2 mit ContenControls (Text wird nicht gesetzt):
Würde mich freuen, wenn jemand eine Idee hat. Vielen Dank!
|