Makro, das Text mit bestimmter Zeichenformatierung ersetzt

08/10/2011 - 18:21 von Radbert Grimmig | Report spam
Servus,

kann mir jemand kurz eben schnell sagen, was ich in ein
Suche-Ersetze-Makro einfügen muss, damit der zu ersetzende String nur
an den Stellen ersetzt wird, wo er in einer bestimmten
Zeichenformatierung auftaucht, beispielsweise "Großbuchstaben" oder
"Umriss"?

(Also die man unter Format-Zeichen einstellt.)

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = _
"zu suchender String"
.Replacement.Text = _
"einzusetzender String"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

Irgendwo müsste man hier vermutlich ein .Allcaps = True bzw. .Engrave
= True oder so was reinschmuggeln, aber ich komm nicht drauf, wie und
wo... ein Hinweis auf ein verstàndliches Visual Basic Tutorial wàr
vielleicht auch nicht verkehrt.

(Wenn ich das Makro einfach aufzeichne, setzt er lediglich ".Format"
auf "= true" und im nàchsten Text werden dann gnadenlos alle Instanzen
des Suchstrings ersetzt, egal welche Formatierung.)


Gruß
Radbert
 

Lesen sie die antworten

#1 Wolfram Jahn
08/10/2011 - 21:04 | Warnen spam
Am 08.10.2011 18:21, schrieb Radbert Grimmig:

(Wenn ich das Makro einfach aufzeichne, setzt er lediglich ".Format"
auf "= true" und im nàchsten Text werden dann gnadenlos alle Instanzen
des Suchstrings ersetzt, egal welche Formatierung.)




Wenn ich aufzeichne, "Doku" von Outline nach SmallCaps zu ersetzen,
bekomme ich das Folgende, und hoffe, es hilft Dir:


Selection.Find.ClearFormatting
Selection.Find.Font.Outline = True
Selection.Find.Replacement.ClearFormatting
With Selection.Find.Replacement.Font
.SmallCaps = True
.AllCaps = False
End With
With Selection.Find
.Text = "Doku"
.Replacement.Text = "Doku"
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute



Wolfram

Ähnliche fragen