Word Makro zum Einfärben?

Naddel_81

Banned
Registriert
Okt. 2006
Beiträge
3.878
Hi @ all,

habe ein paar alte ICQ-Histories in *.rtf und würde gerne automatisch alle Messages von User 1 in einer bestimmten Farbe, so dass man es besser lesen kann.

Das Programm könnte so aussehen:

von "User 1" bis "User 2" --> FÄRBE blau

Von "User 2" bis "User 1" --> FÄRBE rot.

und das dann als endlosschleife bis zum ende der rtf datei. sollte auf nem aktuellen Core 2 Duo selbst mit mehreren MB nicht wirklich lange dauern.

Weiß jemand, ob Word eine solche Funktion mitbringt?


VlG,

Nadine
 
Kann sein das das mit der "Ersetzen" Funktion geht.

Schau mal ob man da farbe o.Ä. einstellen kann.
 
Wäre ein Copy&Paste ins Excel Möglich?

Wenn ja, könnte du dort definieren, wenn die der Zellen Inhalt mit User1 beginnt, dann färbe so und wenn am Anfang User 2 Steht dann so...

Das ganze über VBA.. (Makro)
 
von farbe steht bei "ersetzen" leider nix. auch nicht im ausklappmenü
Nicht weit genug gedacht, es geht schon über Ersetzen: Formatvorlagen.
Also legst du dir vorher ein Absatzformat an. Willst du nur den "User x" färben brauchst du ein Zeichenformat.

Den Suchen und Ersetzen Befehl fütterst du dann entsprechend.
Das Format wird zugeordnet, während der Cursor im Ersetzen-Feld blinkt.

word_format_ersetzen.png
 
wow,

vielen dank! das hilft schon mal ungemein beim lesen!

weißt du auch, ob man den "rest" sprich: das, was der user sagt. auch so einfärben kann?

definieren kann man es nicht konkret, weil sich der text ja immer ändert. aber vielleicht kann man sagen "von user 1 bis user2 : BLAU" und entsprechend "von user 2 bis user1: ROT"?!?

viele grüße
 
Sofern es dann ein Absatz ist und nicht mehrere wo kein "user x" davorsteht, dann geht es natürlich mit einem Absatzformat.
 
Ich muss unbedingt mal ein gutes Werk dazu verfassen, Absatz- und Zeichenformate stoßen regelmäßig auf blankes Entsetzen und Unkenntnis bei den Word-Nutzern. :D

Ein Absatz entsteht wenn du die Enter-Taste benutzt. Ein Absatzformat formatiert immer einen solchen gesamten Absatz, grob gesagt hängt das Format an der Absatzmarke.
Ein Zeichenformat stellt die Abweichung der Formatierung innerhalb des Absatzes dar,
zB: Fett, Kursiv, Rot, Grün, Blau, andere Schriftart, Versalien ...

Zurück zu deinem Problem: Du brauchst also erstmal 2 Absatzformate für deine Farben.
Alt+Strg+Umsch+S sollte die Seitenleiste öffnen, je nach Word steht entweder ganz oben oder unten links (2007 AA-Symbol mit Sonne) was mit neuem Format.
Da stellst du die Formatierung für den Absatz ein und segnest das ab.

Danach wie gehabt mit dem Suchen und Ersetzen durchgrasen.
Du suchst nach dem User und 2 beliebigen Zeichen. Für Word ist auch die Absatzmarke ein Zeichen, deshalb brauchst du das und ein beliebiges aus dem Folgeabsatz, also deinem Inhalt. Ist nix formatiert benutzt Word das Format Standard, deshalb kannste das ignorieren. Als Format für das Ersetzen benutzt du dann das gewünschte erstellte Absatzformat.
Die Zeile drüber mit dem timestamp lässt sich so net greifen, und das funktioniert auch nur wenn die Konvention für die Suche immer gleich bleibt. Sobald du sowas wie User 1: stehen hast oder einen Namen, musst du die Suchangabe entsprechend anpassen.

Zusammengefasst der Screenshot:
- Absatzformate Absatz Blau und Absatz Rot
- Suchen nach: User 1^?^?
- Sonderzeichen wie ^? lassen sich unten über Sonderformat auswählen
- Ersetzt wird mit nichts inhaltlichem, aber dem Format Absatz Blau (oder Rot)

word_formatersetzen_02.png
 
hi morcego,

vielen dank für die horizonterweiterung! hat prima geklappt. nur ein kleiner schönheitsfehler:

die erste zeile einer nachricht wird eingefärbt, die zweite jedoch nicht. ?!

außerdem bleibt der usernamen selber unformatiert. hab das prozedere ohne die "^?^?" probiert, um nur den usernamen zu färben. aber angenommen hat word das nicht.

vielleicht hast du die tage ja eine idee, wo der wurm drin steckt.

vielen dank soweit!


nadine!
 
Der Wurm steckt in deinem Dokument, nicht in der Ersetzen-Funktion.

Wenn du jede Zeile als ein Absatz vorliegen hast, dann kann das auch nur für den Absatz klappen auf den diese Ersetzen-Funktion zielt.
Momentan schießt das Teil auf den Absatz mit User 1 drin und dem ersten Zeichen des Folgeabsatzes.
Da das Absatzformat immer ganze Absätze formatiert werden diese beiden Absätze mit dem Zielformat ausgestattet. Weitere Absätze davor und danach werden ignoriert.
Der Fehler bzw. Umstand liegt einfach in deiner Dokumentenstruktur, das kann die Ersetzen-Funktion nicht abfangen.

Was mich bei dem anderen auch gleich stutzen lässt.
Das Absatzformat sollte auch die Zeile mit dem Nutzernamen greifen, so der Name Teil der Suche ist. Und so wie du das in deinem Beispiel gezeigt hast, hat es auch hier funktioniert.

Je mehr Abweichungen du einbaust, desto schwieriger wird es sowieso da einen Automatismus drüberzujagen. Das Anwenden der Absatzformate geht aber auch händisch sehr flott, dauert so circa 20 Sekunden pro Seite.
 
Zurück
Oben