Hallo,
Ich hab folgendes Problem: Ich soll ein Makro erstellen, das jedes männliche Wort durch die weibliche Form ersetzt. Dabei soll jedoch die Groß- und Kleinschreibung erhalten bleiben. Ich hab dafür folgenden Quellcode erstellt:
Sub ReplaceTextWithSpaceBoth()
With ActiveDocument.Content.Find
.Text = " Er "
.Replacement.Text = " Sie "
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
With ActiveDocument.Content.Find
.Text = " er "
.Replacement.Text = " sie "
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
End Sub
Sub ReplaceTextWithSpaceLeft()
With ActiveDocument.Content.Find
.Text = " Er^p"
.Replacement.Text = " Sie^p"
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
With ActiveDocument.Content.Find
.Text = " er^p"
.Replacement.Text = " sie^p"
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
End Sub
Sub ReplaceTextWithSpaceRight()
With ActiveDocument.Content.Find
.Text = "^pEr "
.Replacement.Text = "^pSie "
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
With ActiveDocument.Content.Find
.Text = "^per "
.Replacement.Text = "^psie "
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
End Sub
Sub ReplaceTextWithDotRight()
With ActiveDocument.Content.Find
.Text = "Er."
.Replacement.Text = "Sie."
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
With ActiveDocument.Content.Find
.Text = "er."
.Replacement.Text = "sie."
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
End Sub
Sub ReplaceTextWithDotRightAndParagraphLeft()
With ActiveDocument.Content.Find
.Text = "^pEr."
.Replacement.Text = "^pSie."
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
With ActiveDocument.Content.Find
.Text = "^per."
.Replacement.Text = "^psie."
.Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue
End With
End Sub
Dabei lasse ich das Makro nach diesen Mustern in dieser Reihenfolge
- "Herrn" durch "Frau",
- "herrn" durch "frau",
- "Herr" durch "frau",
- "seine" durch "ihre",
- "Seine" durch "Ihre",
- "sein" durch "ihr",
- "Sein" durch "Ihr",
- "seinem" durch "ihrem",
- "Seinem" durch "Ihrem",
- "seiner" durch "ihrer",
- "Seiner" durch "Ihrer",
- "er" durch "sie",
- "Er" durch "Sie",
- "ihm" durch "ihr",
- "Ihm" durch "Ihr",
- "ihn" durch "sie",
- "Ihn durch "Sie"
ersetzen (ich hab das der Vollständigkeit halber komplett aufgeschrieben). Dennoch kommt es vor, dass das Programm mal plötzlich aus "seine" nicht "ihre", sondern "Ihre" macht oder aus "Seine" nicht "Ihre", sondern "ihre" (passiert momentan am Anfang eines Paragraphen, ich hab es noch nicht woanders ausprobiert). Vielleicht passiert es auch mit anderen Wörtern, ich weiß es nicht. Kann mir bitte jemand sagen, was da das Problem an dem Makro ist und wie ich es berichtigen kann?
Danke im Voraus, Zero
|