Ich möchte gerne einen Word-Serienbrief auch als Formular verwenden. Das Dokument ist mit einer Datenbank verknüpft und die Formularfelder sind eingefügt. Sowie ich nun die Serienbrieffunktion aktiviere, werden mir im Formular sämtliche Textformularfelder rausgeschmissen und in fünf Leerstellen umgewandelt. Die anderen Formularfelde, wie Dropdown oder Kontrollkästchen bleiben erhalten. Leider habe ich bisher keinen Weg finden können, wie ich das ändern kann, dass auch die Textformularfelder erhalten bleiben. Also dachte ich, wäre doch geschickt diese Felder durch Suchen und Ersetzen wieder zu korrigieren, doch leider gibt es scheinbar keine Möglichkeit nach Text (Leerstellen) zu suchen und diese ersetzen zu lassen durch Formularfelder. Nun, vielleicht dann durch ein Makro, doch wie müsste das dann aussehen? Weiß hier jemand einen Rat?
Office - Word, Excel und Co. 9.736 Themen, 41.350 Beiträge
Es wird dir für deinen Fall wohl trotzdem nicht viel nützen:
Sub TextDurchFfErsetzen()
Const ksSuche = "Formularfeld" ' dein Suchtext
Dim objMerk As Range
Dim objFf As FormField
Dim I As Integer
Set objMerk = Selection.Range
ActiveDocument.Range(0, 0).Select
With Selection.Find
.ClearFormatting
.Text = ksSuche
.Wrap = wdFindStop
.Forward = True
' ggf. weiteres (etwa von letzter Suche)
Do While .Execute
I = I + 1
Set objFf = ActiveDocument.FormFields.Add(Selection.Range, 70) ' Text-Formularfeld
' jetzt Eigenschaften nach Bedarf einstellen
With objFf
.Name = "Ff" & Trim(Str(I))
.Enabled = True
.TextInput.Width = 1000
.TextInput.Default = "Formularfeld " & Str(I)
End With
Loop
End With
objMerk.Select
End Sub