Word VBA, Formatvorlage ersetzen

Liebe ExpertInnen,

ich ändere in einem Dokument per Bearbeiten > Ersetzen eine Formatvorlage und zeichne den Vorgang als Makro auf. Versuche ich, den Makro aufzurufen, passiert nichts, die Formatvorlagen im Dokument bleiben unverändert.

Den Makro habe ich nach dem Aufzeichnen noch parametrisiert, ansonsten ist er exakt so aufgezeichnet worden:

Sub Formatvorlage\_ersetzen(vorher As String, nachher As String)

 Selection.Find.ClearFormatting
 Selection.Find.Style = ActiveDocument.Styles(vorher)
 Selection.Find.ParagraphFormat.Borders.Shadow = False
 Selection.Find.Replacement.ClearFormatting
 Selection.Find.Replacement.Style = ActiveDocument.Styles(nachher)
 Selection.Find.Replacement.ParagraphFormat.Borders.Shadow = False
 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 Replace:=wdReplaceAll
End Sub

Wer weiß was?

Gruß Ralf

Hallo Ralf,

Wer weiß was?

Ich eher wenig :smile:

Auf den ertsn Blick vertshe ich einiges am Code nicht so ganz.
Mit
.Text = „“
.Replacement.Text = „“

ersetzt du Nichts durch Nichts!?
Was bringt das und wenn das so ist, braucht man sicher die ganzen Match-Dinger auch nicht.

Was steht denn in Vorher und nacher wenn du die Sub startest? Sind das in Word eingebaute Namen von Formatvorlagen oder eigene durch dich erstellte und benannte Formatvorlagen?

Auch wenn dein Code anscheinend derzeit kein Ergebnis, zeigt der nachstehende Code zumindest das gleiche Nichtergebnis?
Also könnte man ihn genausogut auch so schreiben und ggfs. paar Befehle rauswerfen um ihn übersichtlicher zu machen?

Option Explicit
'
Sub Formatvorlage\_ersetzen(vorher As String, nachher As String)
With Selection.Find
 .ClearFormatting
 .Style = ActiveDocument.Styles(vorher)
 .ParagraphFormat.Borders.Shadow = False
 .Replacement.ClearFormatting
 .Replacement.Style = ActiveDocument.Styles(nachher)
 .Replacement.ParagraphFormat.Borders.Shadow = False
 .Text = ""
 .Replacement.Text = ""
 .Forward = True
 .Wrap = wdFindContinue
 .Format = True
 .MatchCase = False
 .MatchWholeWord = False
 .MatchWildcards = False
 .MatchSoundsLike = False
 .MatchAllWordForms = False
 .Execute Replace:=wdReplaceAll
End With
End Sub

Gruß
Reinhard

Moin, Reinhard,

Auf den ertsn Blick vertshe ich einiges am Code nicht so ganz.
Mit
.Text = „“
.Replacement.Text = „“

ersetzt du Nichts durch Nichts!?

ich nicht, Word macht das so :smile: Wenn ich mit der Maske Bearbeiten > Ersetzen arbeite, sieht das nicht anders aus - in den Feldern Suchen nach und Ersetzen durch scheint nichts zu stehen, Word ersetzt die Formatvorlagen dennoch.

Was steht denn in Vorher und nacher wenn du die Sub startest?

Die Namen der Formatvorlagen, eine heißt STANDARD, die andere ist von mir erstellt und in der Auswahlleiste verfügbar.

Auch wenn dein Code anscheinend derzeit kein Ergebnis, zeigt
der nachstehende Code zumindest das gleiche Nichtergebnis?

So isset.

Also könnte man ihn genausogut auch so schreiben und ggfs.
paar Befehle rauswerfen um ihn übersichtlicher zu machen?

Na ja - übersichtlicher… So lang da eine Zeile nach der anderen kommt, find ich das nicht so komplex, auch wenn ich nicht so recht weiß, wozu die Zeilen gut sind.

Die Parameter werden jedenfalls sauber übergeben, ich hab noch eine Msgbox dazwischengesetzt. Sie werden sogar richtig ausgewertet: Wenn ich eine nicht vorhandene Formatvorlage einsetze, kriege ich brav den Laufzeitfehler 5941, „Das angeforderte Element ist in der Sammlung nicht vorhanden“.

Gruß Ralf

Word Faq von Rene probst
Hallo Ralf,

Rene hatte mal eine Klasse Seite zu Word, auch mit Vba Besipielen, leider gibt es die Seite(n) nicht mehr :frowning:

Aber schau mal hier:

http://spotlight-wissen.de/lisp/pages/messages/amsw-…

und lade da die zip runter und den Entzipper. keine Ahnung warum da nicht normale Zipper Programme genommen wurden.

Zur Nor kann ich mal bei mir rumkramen, ich meine ich habe sie auch damals runtergeladen und zumindest versucht zu entzippen.

Ist auf jeden Fall eine wahre Fundgrube bei Word-Problemen.

Gruß
Reinhard

[MOD] - Tippfehler entfernt.

das web ist voll von Suchanzeigen nach Probstens WordFAQs. Im
archive gibt es sie noch:
http://web.archive.org/web/20070503124443/mypage.blu…,
aber leider nicht am Stück :frowning:

Sehr schade darum :frowning:

Hallo Ralf,

per Email gings irgendwie nicht, entweder war deinem yahoo oder meinem gmx da was zu groß.

Schau mal hier: http://www.badongo.com/file/10703729
und hier: http://www.badongo.com/file/10703668

Es ist nicht gesgt daß da eine lösung für dein problem ist, aber man sollte die pdfs haben *find*

Gruß
Reinhard