MS Word: Textfelder in Fließtext umwandeln?

Hallo liebe Nutzer und Experten,

mein Problem: Ich habe ein größeres MS Word-Dokument mit Text in jeweils zwei Spalten pro Seite. Der Text der Spalten ist aber komplett in Textfeldern enthalten, wobei es in der Regel mehrere Textfelder pro Seite gibt (also keine über Seitengrenzen gehenden Textfelder).
Diesen Text muss ich nun in einspaltigen Fließtext ohne Textfelder umwandeln und will (wg. der Größe des Dokuments) dabei möglichst wenig manuell machen.
Textfelder verknüpfen z. B. scheint nicht zu gehen, weil das wohl nur mit Text funktioniert, der aus einem Textfeld überläuft.
Ich steh’ gerade total im Wald …

Danke schon mal für alle Antworten!

Jan-Peter

Hallo liebe Nutzer und Experten,

mein Problem: Ich habe ein größeres MS Word-Dokument mit Text
in jeweils zwei Spalten pro Seite. Der Text der Spalten ist
aber komplett in Textfeldern enthalten, wobei es in der Regel
mehrere Textfelder pro Seite gibt (also keine über
Seitengrenzen gehenden Textfelder).
Diesen Text muss ich nun in einspaltigen Fließtext ohne
Textfelder umwandeln und will (

Hallo,

probiere mal folgendes Makro:

Sub tester()
Dim a As Shape
Dim dok As Document
Dim Ausgabebereich As Range
Set dok = Documents.Add
For Each a In ThisDocument.Shapes
 If a.Type = msoTextBox Then
 dok.Content.Collapse wdCollapseEnd
 Selection.TypeText a.TextFrame.TextRange.Text
 End If
Next a
End Sub

Es wird ein neues Worddokument erzeugt und in dieses die Textfeldinhalte aus dem aktiven Dokument eingefügt. Die Textfelder werden in der Reihenfolge aus dem Dokument gelesen, in der sie ursprünglich mal eingefügt wurden. Falls dies durcheinander geschehen war (z.B. Textfelder Seite 2 vor Seite 1 eingefügt) müsste man sich evtl. noch was ausdenken, um die Textfelder in der richtigen Reihenfolge auszulesen.
Viel Spaß beim Testen, tester!

Hallo Tester,

das klingt viel versprechend. Aber ich bin, was das Erstellen (nicht Aufzeichnen) von Makros angeht, blutiger Anfänger und habe keine Ahnung, wie ich die obigen Anweisungen in ein Makro einbauen soll. Wenn ich in Word aufrufe: Extras -> Makro -> Makros -> Erstellen, macht er ein Visual Basic-Fenster auf, in dem eine Reihe von Makros, die ich mal aufgezeichnet habe, untereinander steht. Soll ich deinen Anweisungstext hier eingeben? Ich kann aber auch in dem Visual Basic-Fenster keinen neuen Namen für mein zu erstellendes Makro eingeben, sondern es wird rechts oben ein vorhandener Makroname angezeigt.
Bin ich an der Stelle falsch?

Jan-Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

so geht’s (und Mod bitte ersten Absatz beachten)

Aber ich bin, was das Erstellen
(nicht Aufzeichnen) von Makros angeht, blutiger Anfänger und
habe keine Ahnung, wie ich die obigen Anweisungen in ein Makro
einbauen soll.

Hallo,

oh, ich glaube eine Erläuterung dazu wurde schon öfter in den Foren zur Tabellenkalkulation, Textverarbeitung oder Visual Basic gegeben und m.E. auch schon in die FAQ’s aufgenommen (m.E. ein Beitrag von Reinhard), aber ich habe diese Beschreibung leider nicht mehr auffinden können. Dies vielleicht noch als kleine Aufforderung an den Moderator des Forums eine entsprechenden Beschreibung wieder ein wenig besser auffindbar zu gestalten oder ggf. neu in den FAQ-Bereich aufzunehmen.

Vorab hier noch mal eine Erklärung für den Laien, wie ein Prozedurcode verwendet wird.

Worddatei öffen

Alt-F11 drücken --> Visual Basic Editor öffnet sich

Im Projektexplorer (PE) das zu bearbeitende Worddokument (hier das mit den Textfeldern) markieren
(PE i.d.R. im linken Bereich des Editors, Titelleiste beginnt mit „Project…“, sofern der PE nicht eingeblendet ist, kann dies über das Menü „Ansicht --> Projekt-Explorer“ erfolgen)

Im Editor Menü „Einfügen --> Modul“, im Ergebnis erscheint im PE im Zweig des Dokuments unter Ordner „Module“ ein neues Modul (i.d.R. benannt als „Modul1“)
Dieses Modul sofern dies nicht automatisch erfolgt ist, durch Doppelklick aktivieren

Der Programmcode des Makros (alles zwichen „Sub …“ und „End Sub“) kann dann im rechten Bereich (Codefenster) des VB-Editors eingefügt werden. Dazu am besten die Forumsantwort, die den Code enthält, über die rechtsseitige Option „Artikel abspeichern“ speichern und den Code aus der erstellen Datei in den VB-Editor kopieren (dieser Weg, da direkte Kopie aus dem Internetexplorer die Zeilenumbrüche vernachlässigt und noch eine manuelle Korrektur des Codes erforderlich ist).

Nun kannst Du den VB-Editor wieder verlassen und im Wordprogramm über das Menü „Extras --> Makro --> Makros --> Ausführen“ das erstellte Makro starten. In der Liste der Makronamen erscheint hier der Name der Prozedur (Bezeichnung hinter „Sub“, also hier „tester“)

Ich hoffe ich habe nichts vergessen,

Gruß, tester!

MOD: Eingabe Makros
Hallo tester,

Meinst du dieses Posting hier?

http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…

Wenn ja, der Artikel befindet sich ganz am Ende des Bretts „Tabellenkalkulation“ und ist vor Löschung geschützt.

Gruß
Roland (MOD)

Hallo tester,

Meinst du dieses Posting hier?

http://www.wer-weiss-was.de/cgi-bin/forum/showarticl…

Hallo,

ja, genau den Beitrag meinte ich. Dachte er ist in den FAQ’s zu finden und habe daher an falscher Stelle gesucht.
Vielen Dank und Grüße, tester!

Hallo tester,

auf Grund deines Beitrags habe ich die neue FAQ:2735 erstellt.

Herzlichen Dank für deinen Beitrag!

Grüße aus Schönberg (Lübeck)
Wolfgang
(Netwolf)

Hallo!

auf Grund deines Beitrags habe ich die neue FAQ:2735 erstellt.

Sehr schön, danke! Endlich kann man sich das Geschreibe sparen, wenn jemand nach der Einbindung von VBA-Code fragt.

Leider hat nur Jan-Peter nicht reagiert, ob er damit klar gekommen ist und vor allem ob seine Problemstellung mit dem Code gelöst werden konnte.

Viele Grüße, tester!

Hallo tester,

entschuldige bitte die lange Online-Abwesenheit. (Ich hatte allerdings gestern morgen und abend schon zwei Mal mit „Antwort-Artikel schreiben“ gepostet, aber nichts davon im Forum gesehen!?). Wie auch immer: Meinen herzlichen Dank dir, tester, für die aufwändige und ausführliche Hilfe.
Ich habe das Makro getestet, und es tut genau, was es soll. Die Textfelder sind weg, und der Text erscheint einspaltig in der richtigen Reihenfolge. Super. Mit dem Ergebnis habe ich jetzt zwar wieder neue Probleme, aber ohne deine Hilfe hätte ich nicht mal die gehabt.
Außerdem kann ich jetzt im VB-Editor Makros einkopieren und bearbeiten, und das ist für mich auch in anderer Hinsicht ein deutlicher Fortschritt. Danke nochmals.

Schönen Gruß
Jan-Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

schön zu hören
Hallo!

Schön, dass Du noch mal Bescheid gegeben hast, ob das Makro seinen Zweck erfüllt hat. Leider kommt es doch allzu häufig vor, dass man sich mit einem Problem auseinander setzt, eine teils aufwendige Lösung entwickelt und dann keinerlei Reaktion des Fragestellers mehr erfolgt.

Mit dem Ergebnis habe ich
jetzt zwar wieder neue Probleme, aber ohne deine Hilfe hätte
ich nicht mal die gehabt.

Also, falls es sich bei dem Problem darum handelt, dass keine Formatierungen (Schriftarten, Zeichenformatierungen u.a.) innerhalb der Textfelder in das neue Dokument übernommen werden, kann ich Dir noch folgende kleine Änderung des Codes anbieten:

Sub tester()
Dim a As Shape
Dim dok As Document
Dim Ausgabebereich As Range
Set dok = Documents.Add
For Each a In ThisDocument.Shapes
 If a.Type = msoTextBox Then
 dok.Content.Collapse wdCollapseEnd
 a.TextFrame.TextRange.Copy
 Selection.Paste
 End If
Next a
End Sub

Viele nette Grüße, tester!

O, hallo, da kam ja noch was nach …
Danke, tester, für Deine wiederholte Mühe. Nein, die neuen Probleme sind eigentlich nicht von der Art, wie Du sie meinst, sondern haben weniger mit Textverarbeitung als vielmehr mit Zeichenerkennung zu tun (das Word-Dokument mit den Textfeldern ist nämlich eins von mehreren möglichen Ausgabeformaten einer OCR-Software, und die produziert ihre eigenen Probleme). Trotzdem - vielleicht kann ich Deine neue Lösung ja auch irgendwann gebrauchen.

Bis irgendwann einmal,
Gruß und Dank

Jan-Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo zusammen,
Lieber tester,

ich bin hier fast fündig geworden! Ich habe den VBA ausprobiert und er gibt total klasse (nur) die Textfelder aus. Ich habe hier allerdings einen 85 Jahre alten Professor, der gerne aus einem 40seitigen Word-Dokument ebenso den Fließtext haben möchte. Sprich - das Makro soll sowohl den Text als auch die Textfelder als Fließtext an den richtigen Positionen ausgeben, damit es ein reines Textdokument wird. Falls das jemand im VBA ergänzen kann, wäre ich unsagbar dankbar! Herzlichst, AGu

Moin,

ein Klick auf den jeweiligen Avatar zeigt, dass Tester zuletzt 2011 hier war, Netwolf 2014, Jan_Peter ist ganz weg.

Gruß
Ralf

Ja schade, aber vielleicht weiß es jemand anderes? 16 Jahre später heißt 16 Jahre schlauer! Also alle anderen ; ) ich bleibe gespannt!

Es gibt spezielle Excel-Foren, die haben meist auch eine Jobbörse dabei.

Gruß
Ralf