In allen Stories Suchen und Ersetzen

26/01/2008 - 11:49 von Hans List | Report spam
Hallo Word-Experten,

Ich habe folgendes Makro geschrieben:

Sub Sz_Ersetzen()
For Each myStoryRange In ActiveDocument.StoryRanges
'erste Story
myStoryRange.LanguageID = wdDutch
ZeichenErsetzen
Do While Not (myStoryRange.NextStoryRange Is Nothing)
Set myStoryRange = myStoryRange.NextStoryRange
'übrige Stories
ZeichenErsetzen
Loop
Next myStoryRange
End Sub

Sub ZeichenErsetzen()
eszet = ReplaceLocal("ß", "ss", False, False)
'die Funktion ReplaceLocal wird hier noch ca. 50x mit anderen
Zeichen
'ausgeführt

End Sub

Function ReplaceLocal(fWhat As String, rWith As String, Optional
mCase As Boolean, _
Optional wWord As Boolean)
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting

With Selection.Find
.Text = fWhat
.Replacement.Text = rWith
.MatchCase = mCase
.MatchWholeWord = wWord
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With

'Standardeinstellungen wiederherstellen (Bad Karma)
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute
End With

End Function

Leider musste ich feststellen, dass nicht alle Instanzen von 'ß' auch
erwischt werden. Die Dokumente wurden mit einem OCR-Programm aus PDF-
Dateien erstellt.

Die sz-Zeichen in einer bestimmten 'AutoForm' (erkennbar am hellgrünen
Punkt als Handle) werden nicht in 'ss' umgewandelt.

Hat jemand eine Erklàrung dafür?

Besten Dank!

Hans
 

Lesen sie die antworten

#1 Hans List
26/01/2008 - 11:50 | Warnen spam
Vielleicht nicht unwichtig ;-) :

Ich verwende die (niederlàndische) Version von Word 2003 SP3.

HL

Ähnliche fragen