Wortlänge ermitteltn

04/03/2010 - 18:27 von Frank Spade | Report spam
Guten Tag,

ich möchte mit VBA Straßennamen ausschreiben, wenn das ursprüngliche Wort
kürzer als zehn Zeichen ist. Dafür suche ich nach "str." und möchte es mit
"straße" ersetzen, wenn der Straßenname kürzer als zehn Zeichen ist.

Selection.Find.ClearFormatting
With Selection.Find
.Text = "str."
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.MatchWildcards = False
End With
Selection.Find.Execute
If Selection.Find.Found Then
{ermittle Lànge des gefundenen Wortes}
If {lànge < 10} then {replace "str." mit "straße"}
End If

Suchen und ersetzen kann ich schon, aber wie prüfe ich mit VBA (Word 2003)
die Lànge des gefundenen Wortes?

Herzlichen Gruß

Frank
 

Lesen sie die antworten

#1 Thomas Gahler
04/03/2010 - 21:15 | Warnen spam
Hallo Frank

ich möchte mit VBA Straßennamen ausschreiben, wenn das ursprüngliche Wort
kürzer als zehn Zeichen ist. Dafür suche ich nach "str." und möchte es mit
"straße" ersetzen, wenn der Straßenname kürzer als zehn Zeichen ist.


Das kannst du wohl in einem Durchgang mittels Suchen/Ersetzen erstellen.
Dazu musst du jedoch die ".MatchWildcards = True" setzen.

Hier mal lesen wie das geht
- Finding and replacing characters using wildcards
http://word.mvps.org/faqs/general/U...dcards.htm

Ich würde es mal mit diesen Zeichenketten versuchen (ist jedoch ungetestet)

Suchen (<[0-9A-z]{10})str.
Ersetzen \1straße


Und diese auch noch lesen
- Flush bad karma from Word's find facility after an unsuccessful wildcard
search
http://word.mvps.org/faqs/macrosvba/FlushFR.htm




Thomas Gahler
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows Vista (SP2), Office 2007 (SP2)

Ähnliche fragen