Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Formatierung per Makro suchen und ändern

983 views
Skip to first unread message

Dietmar Krawinkel

unread,
Sep 16, 2009, 9:57:41 AM9/16/09
to
Hallo zusammen,

ich muß vorweg schicken, dass ich ein VBA-Neuling bin!

Ich möchte in Word 2003 ein Dokument nach einer bestimmten
Formatierung
(Arial, Fett, 16 Pt) durchsuchen und eine neue Formatvorlage (z.B.
nummerierte Überschrift 1) zuordnen.

Das funktioniert manuell gut mit Suchen, Format suchen, Markieren,
neue Formatvorlage zuordnen
Zeichne ich ein entsprechendes Makro auf, funktioniert dieses nicht
mehr, da vermulich bei der Erstellung des Makros nicht die gesuchte
Formatierung ins Makro geschrieben wird.

Gibt es vielleicht noch eine andere Möglichkeit?
Wie müsste ein entsprechender VBA-Code aussehen?

Habe bereits mit Autoformat bzw. Formatvorlagenkatalog experimentiert,
jedoch ohne Erfolg.

Gruß
Dietmar

Thomas Gahler

unread,
Sep 18, 2009, 5:17:04 PM9/18/09
to
Hallo Dietmar

> ich mu� vorweg schicken, dass ich ein VBA-Neuling bin!
Willkommen


> Ich m�chte in Word 2003 ein Dokument nach einer bestimmten


> Formatierung
> (Arial, Fett, 16 Pt) durchsuchen und eine neue Formatvorlage (z.B.

> nummerierte �berschrift 1) zuordnen.
Machen die nachstehenden Zeilen was du suchst?


Sub Demo1()
Dim rng As Word.Range

Set rng = ActiveDocument.Range

With rng.Find
'Suchen
.ClearFormatting
With .Font
.Bold = True
.Size = 16
.Bold = True
End With
.Text = ""
'Ersetzen
With .Replacement
.ClearFormatting
.Style = ActiveDocument.Styles(wdStyleHeading1)
End With
.Replacement.Text = ""
'Allgemeine Einstellungen
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = True
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
'Ausf�hren
.Execute Replace:=wdReplaceAll
End With
End Sub


> Das funktioniert manuell gut mit Suchen, Format suchen, Markieren,
> neue Formatvorlage zuordnen
> Zeichne ich ein entsprechendes Makro auf, funktioniert dieses nicht
> mehr, da vermulich bei der Erstellung des Makros nicht die gesuchte
> Formatierung ins Makro geschrieben wird.

Hier ist der Makrorekorder leider fehlerhaft :-(

--
Thomas Gahler
MVP f�r Word
Co-Autor von �Microsoft Word-Programmierung.
Das Handbuch� (MS Press)


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


Dietmar Krawinkel

unread,
Sep 23, 2009, 11:23:58 AM9/23/09
to
Hallo Thomas,

erstmal vielen Dank für Deine Antwort!

> Machen die nachstehenden Zeilen was du suchst?

Leider nicht.

Es wird zwar nur Text gefunden, der 16 pt hoch ist, ich kann im Code
jedoch nicht erkennen,
dass nach Arial gesucht werden soll. Die Überschrift ist nicht fett.

Im Formatierungsfeld wird nun folgendes angezeigt: Überschrift 1 +
Arial, Nicht Fett, Schwarz

Kann ich auch eine selbst erstellte Formatvorlage namens "Überschrift
GA1" im Code bestimmen,
um z.B. gleich gegliederte Überschriften mit Nummerierung zu erhalten?

Wieso formatiert Word nicht den Text so, wie es in der Formatvorlage
unter Schriftart (z.b. Tahoma) definiert ist
und hängt immer die aktuelle Schriftart oder/und Schriftgröße hinten
dran?
Was bringt mir dann die Definition von Schriftart und Schriftgröße in
der Formatvorlage?

Gruss
Dietmar

Thomas Gahler

unread,
Sep 23, 2009, 11:59:36 AM9/23/09
to
Hallo Dietmar


> Es wird zwar nur Text gefunden, der 16 pt hoch ist, ich kann im Code
> jedoch nicht erkennen,

> dass nach Arial gesucht werden soll. Die �berschrift ist nicht fett.
Ups.. kleiner Fehler eingeschlichen (daf�r wird nach Fett + fett gesucht ;-)

With .Font
.Name = "Arial"


.Size = 16
.Bold = True
End With

Dann sollte es klappen, habe ich jedoch nicht mehr getestet.


> Kann ich auch eine selbst erstellte Formatvorlage namens "�berschrift
> GA1" im Code bestimmen,
> um z.B. gleich gegliederte �berschriften mit Nummerierung zu erhalten?
Weiss nicht ganz was du willst, aber ich sehe keinen Grund weshlab eine
andere Formatvorlage angesporchen werden k�nnte. Die wird dann �ber deren
Namen und nicht �ber eine Konstannte angesprochen.

> Wieso formatiert Word nicht den Text so, wie es in der Formatvorlage
> unter Schriftart (z.b. Tahoma) definiert ist

> und h�ngt immer die aktuelle Schriftart oder/und Schriftgr��e hinten
> dran?
Weil warscheinlich die Schrift manuell �bersteuernt wurde. Will heissen,
dass der Text nicht nur mit Formatvorlagen formatiert wurden, sondern
einzelen Zeichenformate manuell gesetzt wurden (Zur�cksetzen mit
Ctrl+Leerschlag oder mit VBA die .Font.Reset-Methode anwenden)


> Was bringt mir dann die Definition von Schriftart und Schriftgr��e in
> der Formatvorlage?
Wahrscheinloich genau das, was du m�chtest. Verwende Absatz- und
Zeichenformatvorlagen und nutze nur diese, den Word ist eine
Textverarbeitung und keine Schreibmaschine.
Wenn zus�tzlich manuell formatiert wird, dann haben diese Formatierungen oft
mehr "gewicht" und bleiben bestehen. Oft deshlab, weil es, soviel ich wiess,
auf dei Word-Versionen drauf ankommt, wie das gehandhabt wird und wohl noch
auf andere Sachen.

Darum mit Ctrl-Leerschlag (zeichenformate) und Ctrl+Q (Absatzformate) den
Textauf die Ursprungsformate zur�cksetzen.

Gruss
Thomas

Gruss
Dietmar

--
Thomas Gahler
MVP f�r Word
Co-Autor von �Microsoft Word-Programmierung.
Das Handbuch� (MS Press)


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


Dietmar Krawinkel

unread,
Sep 24, 2009, 4:45:41 AM9/24/09
to
Hallo Thomas,

der Code klappt nun! Danke.


>
> Weiss nicht ganz was du willst, aber ich sehe keinen Grund weshlab eine

> andere Formatvorlage angesporchen werden könnte. Die wird dann über deren
> Namen und nicht über eine Konstannte angesprochen.

Dazu muß ich weiter ausholen:
Ich habe in Accesss 03 einen umfangreichen Bericht mit div.
Unterberichten erstellt
und diesen über die eingebaute Funktion "nach Word im RTF-Format
exportieren"
nach Word exportiert. Da ich unter Access nur Schriftart, -schnitt, -
grad definierern kann,
ich aber unbedingt gegliedert Überschriften in meinem Worddokument
benötige
(weil ich diesen Textteil mit einem weiteren Worddok. aus einem
anderen Programm vereinigen
und ein gemeinsames Inhaltsverzeichnis ausgeben muss),
habe ich (inzwischen) die Überschriften in Access in TAHOMA, fett in
verschiedenen Schrifthöhen
und den Text in Verdana, 11 pt formatiert.

Word benutzt bei diesem Export offensichtlich eine eigene
Formatvorlage namens "normal.dot".
Die Standartschriftart ist hier TIMES NEW ROMAN, 12 pt. Da ich diese
FV nirgends finden kann,
kann ich diese Standartformatierung nicht auf "meine"
Standarttextformatierung (Verdana, 11 pt) ändern.
Auch besitzt der exportierte Text für fast jede Zeile eine
Absatzformatierung mit einem anderen VOR-Wert.
Obwohl der Text selbst in VERDANA, 11 pt formatiert ist,
ist die Absatzendemarke in einem höhren Schriftgrad formatiert.
Vor jedem Text befindliche Tabstops sind wieder in ARIAL formatiert.
Das macht das Suchen und Ersetzen nicht gerade einfach.

Nun wollte ich nach Text z.B. mit der Formatierung TAHOMA, 16 pt bzw.
14 pt, etc. suchen
und dem Text die selbst erstellte Formatvorlage (FV) "Überschrift GA1
bzw. Überschrift GA2, etc." zuweisen.
Okay, mit dem Suchen klappt das nun!
Nur beim Ersetzen gibt es das Problem, dass zwar z.B. die Standard-
Formatvorlage "Überschrift 1"
zugewiesen wird, jedoch die Schriftart TAHOMA bleibt und nicht ARIAL
ist, wie in der FV festgelegt.
In meiner eigenen FV habe ich eine bestimmte Zeichen-, Absatz- und
Gliederungsformatierung festgelegt.

> Darum mit Ctrl-Leerschlag (zeichenformate) und Ctrl+Q (Absatzformate) den

> Textauf die Ursprungsformate zurücksetzen.
>
Das würde ich gerne mit dem "normalen" Text nachen, aber nicht mit
meinen Überschriften
da sie sonst nicht mehr als solches gesucht werden können!

Ich könnte Dir die Datei auch zukommen lassen.

Gruss
Dietmar


Thomas Gahler

unread,
Sep 28, 2009, 5:00:46 AM9/28/09
to
Hallo Dietmar


>> Weiss nicht ganz was du willst, aber ich sehe keinen Grund weshlab eine

>> andere Formatvorlage angesporchen werden k�nnte. Die wird dann �ber deren
>> Namen und nicht �ber eine Konstannte angesprochen.

> Dazu mu� ich weiter ausholen:
> Ich habe in Accesss 03 einen umfangreichen Bericht mit div. [...]
T�nt ja wie ein kleiner Krimi...

Anderer Vorschlag, den du dir kurz �berlegen kannst:

a.) anstellen die Daten formatiert ins .rtf senden, jedem Absatz eine
Kennzeichnung geben, dann kannst du eine .txt-Datei erzeugen und mittels
Suchen/Ersetzen dies Kennzeichen am Absatzbeginn/-Ende aufsp�ren und
formatieren. Also etwas �hnliches wie ein HTML-Tag einpacken. (Code f�r
dieses Suchen/ersetzen findest du bei www.chf-online.de)

b.) Anstelle von Export direkt nach Word lieferen und Word fernsteuern

Dietmar Krawinkel

unread,
Sep 29, 2009, 9:38:02 AM9/29/09
to
Hallo Thomas,

> a.) anstellen die Daten formatiert ins .rtf senden, jedem Absatz eine
> Kennzeichnung geben, dann kannst du eine .txt-Datei erzeugen und mittels

> Suchen/Ersetzen dies Kennzeichen am Absatzbeginn/-Ende aufspüren und
> formatieren. Also etwas ähnliches wie ein HTML-Tag einpacken. (Code für
> dieses Suchen/ersetzen findest du beiwww.chf-online.de)

So etwas habe ich mir auch schon überlegt, da ich aber schon so viel
Arbeit in die Formatierung
in Access + Word gesteckt habe, ist das für mich noch die letzte
Option,
sofern o.g. Vorgehensweise scheitert.

> b.) Anstelle von Export direkt nach Word lieferen und Word fernsteuern

Das hört sich geil an! Stelle ich mir aber recht kompliziert vor.
Kannst Du mir ein kleines Beispiel nennen, wo ich mir die Codes
anschauen kann.
(Vielleicht für's nächstemal)

Besten Dank für die Infos!!

Gruß
Dietmar

Thomas Gahler

unread,
Sep 29, 2009, 10:36:47 AM9/29/09
to
Hallo Dietmar


>> a.) anstellen die Daten formatiert ins .rtf senden, jedem Absatz eine

>> Kennzeichnung geben, dann kannst du eine .txt-Datei erzeugen und [...]
> So etwas habe ich mir auch schon �berlegt, da ich aber schon so viel
> Arbeit in die Formatierung
> in Access + Word gesteckt habe, ist das f�r mich noch die letzte


> Option, sofern o.g. Vorgehensweise scheitert.

Vielleicht ist es ja an der zeit die Notbremse zu ziehen und etwas um
zustellen

An diesen Hinweise hatte ich in meinem letzten Beitrag gedacht
- Text zwischen Tags finden und bearbeiten
http://www.chf-online.de/vba/vbafindreplace.htm

>> b.) Anstelle von Export direkt nach Word lieferen und Word fernsteuern

> Das h�rt sich geil an!
Ist es auch


> Stelle ich mir aber recht kompliziert vor.

N� ist es nicht. Fast genau gelich wie ein WordMakro


> Kannst Du mir ein kleines Beispiel nennen, wo ich mir die Codes

> anschauen kann. (Vielleicht f�r's n�chstemal)
Hier schauen

- Control Word from Excel
http://word.mvps.org/faqs/interdev/controlwordfromxl.htm

- Early vs. Late Binding
http://word.mvps.org/faqs/interdev/EarlyvsLateBinding.htm

oder das Buch (siehe Signatur) kaufen. Es hat dort mehrere Beispiele zum
Steuern von Word-Word, Word-Excel, Word-Powerpoint, Word-Visio, Word-Access
drin.

0 new messages