Office - Word, Excel und Co. 9.759 Themen, 41.747 Beiträge

Word: Wie kann man Leerzeilen bei leeren Textformularfeldern

Ixcel / 3 Antworten / Baumansicht Nickles

Kenne mich mit Word-Textformularen nicht aus. Von unserem Adressprogramm werden Daten an Word 2000 übergeben, die dann in Textformularfelder eingelesen werden. Bei leeren Adressdatenfeldern führt das zu unschönen Leerzeilen in der Adresse. Kann man die Leerzeilen unterdrücken so wie man ja auch das Drucken von LeerZEICHEN unterdrücken kann? Muss ich dafür womöglich ein Makro schreiben, das beim Eintreten oder Verlassen des Textformularfelds ausgeführt wird?
Ixcel

bei Antwort benachrichtigen
Borlander Ixcel „Word: Wie kann man Leerzeilen bei leeren Textformularfeldern“
Optionen

Wenn Du im Seriendruckmanger auf die Schaltfläche Ausführen klickst (oder auf die Schaltfläche Seriendruck in der Menüleiste) wird der Seriendruck-Dialog geöffnet. Dort findest Du die Option "Aus Leerfeldern resultierende Leerzeilen auslassden" - damit werden Zeilen die nur ein leeres Feld enthalten nicht mitgedruckt...

CU Borlander

bei Antwort benachrichtigen
Ixcel Borlander „Wenn Du im Seriendruckmanger auf die Schaltfläche Ausführen klickst oder auf...“
Optionen

Danke für den Tip, aber mein Word-Dokument ist gar kein Seriendruck-Dokument. Die Textformularfelder werden über einen Button in der Symbolleiste "FORMULAR" in das Dokument eingefügt. Wenn man die Feldfunktionen sichtbar schaltet steht für jedes Feld FORMTEXT in geschweiften Klammern. Mit der rechten Maustaste geht man in die Eigenschaften jedes einzelnen Feldes und weist hier den Namen der Variablen aus der Adressdatenbank zu. Dies alles passiert in einer Dokumentvorlage, die über das Adressprogramm aufgerufen wird. Das Adressprogramm hinterlegt in der Dokumentvorlage eine Reihe nicht bearbeitbarer Makros, die offensichtlich das Verknüpfen der Felder mit den Adressdaten übernehmen.
Ixcel

bei Antwort benachrichtigen
Uli M Ixcel „Word: Wie kann man Leerzeilen bei leeren Textformularfeldern“
Optionen

Dazu müsstest du am sinnvollsten wohl an den Quellcode ran.
Prinzipiell wäre es auch denkbar, mit einem Makro (in dem Fall wohl von "außen") "leere" Textformularfelder im nachhinein zu löschen, wenn ein ggf. gesetztes Kennwort bekannt ist. Dies kann natürlich das Layout durcheinander bringen, von dem ein solches Vorhaben ohnehin abhängig ist: Sollten etwa nur die Felder gelöscht werden, die Absätze, ggf. Tabellenzellen oder -zeilen, in denen sie sich befinden?
Nur mal ein Bsp.:
Sub LeereFfLöschen()
Dim oDok As Document, oFf As FormField
Set oDok = ActiveDocument
On Error Resume Next
With oDok
.Unprotect "KENNWORT"
For Each oFf In .FormFields
If oFf.Type = 70 Then ' wdFieldFormTextInput
If Trim(oFf.Result) = "" Then oFf.Delete
End If
Next oFf
.Protect 2, True, "KENNWORT" ' 2 = wdAllowOnlyFormFields
End With
End Sub

bei Antwort benachrichtigen