![]() |
VB-Makro für Selektion in Word nach Format
Also, ich brauche ein Makro, mit dem ich in einem Worddokument nur Textteile einer bestimmten Farbe makieren kann und dann ändern.
Ich bin in der VisualBasic-Syntax nicht so bewandert, darum habe ich mir zunächst ein Makro mit dem Recorder zusammen gekaspert, welches ich mir dann entsprechend modifiziert habe. Dieses läuft auch ganz gut, in einem einfachen Dokument (Textdokument eine Seite nur Text). Will ich jedoch größere Dokumente mit Grafiken und anderen Objekten modifizieren, dann hängt sich der Rechner auf. Kann man an also dieses Makro soweit verbessern, dass es auch bei umfangreicheren Dokumenten funktioniert. Das z.b. anstelle von „Select.WholeStory“ nur der Text im Dokument markiert wird und die Objekte ignoriert werden. Hier meine kleine Routine:
Code:
Schon mal vielen Dank im Voraus
Dim i
i = 0 Selection.WholeStory While i < Selection.Characters.Count i = i + 1 If Selection.Characters.Item(i).Font.Color = wdColorBlue Then _ Selection.Characters.Item(i).Font.Name = "Graphit Light" Wend PS.: Wenn einer eine Idee hat, wie man in Word das gleiche auch ohne Makro erreichen kann, wäre mir auch sehr geholfen. [edit=sakura] [code]-Tags gesetzt. Mfg, sakura[/edit] |
Re: VB-Makro für Selektion in Word nach Format
...nach langem hin und her probieren, habe ich dann doch noch eine lösung gefunden, die zumind. meine Zwecke erfüllt. Der erfahrene VB-Progammierer mag zwar über diese umfangreiche Routine im Verhältnis zur zuerfüllenden Aufgabe den Kopf schütteln, aber es läuft. Ihr könnt mir natürlich immer noch bessere alternative Lösungen liefern, denn ich lerne auch in VB gerne dazu...
Code:
Greetings Joerg
With ActiveDocument.Content.Find
.ClearFormatting .Font.Name = "Symbol" .Font.Color = wdColorBlue .Format = True .Replacement.ClearFormatting .Replacement.Font.Color = wdColorBrown .Execute Forward:=True, Replace:=wdReplaceAll, _ FindText:="", ReplaceWith:="" End With With ActiveDocument.Content.Find .ClearFormatting .Font.Color = wdColorBlue .Format = True .Replacement.ClearFormatting .Replacement.Font.Name = "Geogia" .Execute Forward:=True, Replace:=wdReplaceAll, _ FindText:="", ReplaceWith:="" End With With ActiveDocument.Content.Find .ClearFormatting .Font.Name = "Symbol" .Format = True .Replacement.ClearFormatting .Replacement.Font.Color = wdColorBlue .Execute Forward:=True, Replace:=wdReplaceAll, _ FindText:="", ReplaceWith:="" End With [edit=sakura] [code]-Tags gesetzt. In Zukunft bitte selbst erledigen. Mfg, sakura[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz