Suche nach Format und gefundene Stellen anzeigen

05/12/2008 - 11:24 von Claus Pauli | Report spam
Hallo NG,

mit der folgenden Prozedur hinterlege ich alle Wörter mit "Hallo".
Funktioniert!
Selection.Find.Format = False
Selection.Find.Replacement.Highlight = True
With Selection.Find
.Text = "Hallo"
.MatchWildcards = False
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = True
End With
Selection.Find.Execute Replace:=wdReplaceAll

Ich möchte Überschriften 1 markieren. Funktioniert nicht!?
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Überschrift 1")
Selection.Find.ParagraphFormat.Borders.Shadow = False
Selection.Find.Replacement.Highlight = True
With Selection.Find
.Text = "" ' Die komplette Überschrift soll markiert
werden
.MatchWildcards = False
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = True
End With
Selection.Find.Execute Replace:=wdReplaceAll

Mit der Suchfunktion in Word (Strg/F) funktioniert es. Der Makrorecorder
gibt es auch entsprechen wie oben aus. Mit VBA geht es jedoch nicht. Hat da
jemand einen Rat?

Viele Grüße
Claus
 

Lesen sie die antworten

#1 Thomas Gahler
05/12/2008 - 15:09 | Warnen spam
Hallo Claus


Ich möchte Überschriften 1 markieren. Funktioniert nicht!?
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Überschrift 1")
Selection.Find.ParagraphFormat.Borders.Shadow = False
Selection.Find.Replacement.Highlight = True
With Selection.Find
.Text = "" ' Die komplette Überschrift soll markiert
werden
.MatchWildcards = False
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = True
End With
Selection.Find.Execute Replace:=wdReplaceAll



Ein paar Zeilen habe ich angepasst oder entfern, dann làuft das Makro durch


Selection.Find.Style = ActiveDocument.Styles("Überschrift 1")


Würde ich anpassen auf die neutrale Schreibweise
Selection.Find.Style = ActiveDocument.Styles(wdStyleHeading1)


Selection.Find.ParagraphFormat.Borders.Shadow = False


Würde ich weglassen, weil du ja nichts mit den Rahmen machst

.MatchCase = True


Wieso muss die Gross/Kleinschreibung beachtet werden, weglassen


Selection.Find.Execute Replace:=wdReplaceAll


Würde ich anpassen, auf normal
Selection.Find.Execute , denn bei wdReplaceAll macht es flusch und das
Amkro ist durch und alle Überschriften waren für Millisekunden markiert.



Sub Demo()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting

Selection.Find.Style = ActiveDocument.Styles(wdStyleHeading1)
Selection.Find.Replacement.Highlight = True
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
End Sub






Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP3), Office XP (SP3)

Ähnliche fragen