ERLEDIGT
NEIN
NEIN
ANTWORTEN
4
4
ZUGRIFFE
1457
1457
EMPFEHLEN
-
01.04.10 13:50 #1
- Registriert seit
- Apr 2010
- Beiträge
- 5
Liebe *,
ich möchte einen Bereich in einem Word-Dokument daraufhin überprüfen, ob bestimmte (bei der Weiterverarbeitung unerlaubte) Textformatierungen vorliegen (z.B. doppelt durchgestrichen oder fett&unterstrichen).
Dazu fallen mir zwei Lösungsmöglichkeiten ein:
1. Im Text "blind" nach den Formatierungen suchen
2. Den Text Wort für Wort durchgehen und jedes Wort auf die Textformatierung hin überprüfen.
Leider bin ich kein Experte in VB, daher weiß ich nicht, ob Möglichkeit 1 überhaupt geht. Ich habe mich jedenfalls für Möglichkeit 2 entschieden und löse das so, wie im untenstehenden Code gezeigt.
Problem: Das ist saulangsam. Wenn der Text bloß eine Din-A4-Seite lang ist, kann man während der Überprüfung schon fast einkaufen gehen. Daher die Frage: Hat jemand einen Vorschlag, wie das auch schneller geht?
Vielen Dank!
happyeater
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
For i = 1 To (ActiveDocument.Tables(2).Rows.Count - 2) zelle = ActiveDocument.Tables(2).Cell(i, 2) zelle.Select intWoerter = Selection.Words.Count - 1 For j = 1 To intWoerter If ((Selection.Words(j).Font.Underline And Selection.Words(j).Font.Bold) _ Or (Selection.Words(j).Font.DoubleStrikeThrough) _ Or (Selection.Words(j).Font.Animation) _ Or (Selection.Words(j).Font.Emboss) _ Or (Selection.Words(j).Font.Engrave) _ Or (Selection.Words(j).Font.Outline) _ Or (Selection.Words(j).Font.Shadow) _ Or (Selection.Words(j).Font.StrikeThrough And Selection.Words(j).Font.Bold) _ Or (Selection.Words(j).Font.StrikeThrough And Selection.Words(j).Font.Underline) _ Or (Selection.Words(j).Font.StrikeThrough And Selection.Words(j).Font.Italic) _ Or (Selection.Words(j).Font.SmallCaps And Selection.Words(j).Font.Bold) _ Or (Selection.Words(j).Font.SmallCaps And Selection.Words(j).Font.StrikeThrough) _ Or (Selection.Words(j).Font.SmallCaps And Selection.Words(j).Font.Underline) _ Or (Selection.Words(j).Font.SmallCaps And Selection.Words(j).Font.Italic) _ Or (Selection.Words(j).Font.SmallCaps And Selection.Words(j).Font.Superscript) _ Or (Selection.Words(j).Font.Underline And Selection.Words(j).Font.Superscript) _ Or (Selection.Words(j).Font.Underline And Selection.Words(j).Font.Subscript) _ Or (Selection.Words(j).Font.Bold And Selection.Words(j).Font.Superscript) _ Or (Selection.Words(j).Font.Bold And Selection.Words(j).Font.Subscript) _ Or (Selection.Words(j).Font.Italic And Selection.Words(j).Font.Superscript) _ Or (Selection.Words(j).Font.Italic And Selection.Words(j).Font.Subscript)) _ Then MsgBox("Fehlermeldung") End If ' Doppelformatierungen Next ' jedes einzelne Wort pruefen Next ' jede Tabellenzeile durchgehen
-
01.04.10 14:15 #2
Du könntest doch den zu durchsuchenden Teil zwischen 2 Textmarken stecken, alles markieren und dann einfach die Formatierungen löschen/ändern:
Code vb:1 2 3 4
Dim oDoc As Document Set oDoc = ActiveDocument oDoc.Range(Start:=oDoc.Bookmarks("Teil1").Range.Start, End:=oDoc.Bookmarks("Teil2").Range.Start).Select 'Ab hier kannst du dann mit Selection weiterarbeiten
Der Doc!A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
B: Die Scrollbar da rechts ist dir schon mal aufgefallen?
-
01.04.10 14:54 #3
- Registriert seit
- Apr 2010
- Beiträge
- 5
Hallo Doc,
danke für den schnellen Hinweis!
Ich möchte die Formatierung aber nicht einfach löschen: Die Überprüfung soll Projektmitarbeitern zeigen, wo sie an ihrem eigenen Text noch etwas ändern müssen. Sie sollen aber selbst entscheiden, WIE sie die Formatierung dann ändern, daher will ich sie nur auf die Stelle hinweisen, wo etwas nicht in Ordnung ist.
Gibt es (vgl. meine Möglichkeit 1, oben) einen Weg, in einer Selection oder in einem Paragraph (oder innerhalb einer Range) nach einer konkreten Textformatierung (und auch nach Kombinationen, also fett&unterstrichen) zu suchen?
So wie Selection.Find.Style, aber ohne eine definierte Word-Formatvorlage?
Vielleicht ginge das schneller ...
Viele Grüße
happyeater
-
01.04.10 17:15 #4
Du kannst ja die Selection auf Eigenschaften von Font abfragen, würde so aussehen:
Welche Wörter jetzt genau betroffen ist kannst du zwar nicht abfragen, für einen Hinweis reicht die Abfrage aber allemal.Code vb:1
If Selection.FormattedText.Bold Then MsgBox "Text Fett!"
Der Doc!A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
B: Die Scrollbar da rechts ist dir schon mal aufgefallen?
-
01.04.10 19:59 #5
- Registriert seit
- Apr 2010
- Beiträge
- 5
Hallo Doc,
nochmal danke für den Hinweis; ich habe selbst noch etwas ausprobiert und bin jetzt bei einer ellenlangen Liste von Prüfungen der Form
Code :1 2 3 4 5 6 7 8
With Selection.Find .ClearFormatting .Font.Bold = True .Font.Underline = True .Execute FindText:="", Format:=True, Forward:=True If .Found = True Then ' Fehlermeldung End If
... und das für jedes zu kontrollierende Format. Ist von der Schnelligkeit her ok und wird mir von der Funktionalität wohl ausreichen. Hoffe jetzt nur, dass das auch mit allen Word-Versionen läuft. Aber vielleicht fällt mir mit Deinem Hinweis noch eine bessere Methode ein.
Viele Grüße
happyeater
Ähnliche Themen
-
automatische textformatierung in word-tabellen
Von c_83 im Forum Visual Basic 6.0Antworten: 9Letzter Beitrag: 02.10.07, 12:37 -
Word-Makro - Datei auf Aktualität überprüfen
Von greendivision im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 21.03.07, 23:49 -
VBA Makro von Word 6.0 auf Word 2000...
Von maeaexx im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 06.03.04, 12:57 -
Makro in Word
Von Dark_Nickisch im Forum Visual Basic 6.0Antworten: 4Letzter Beitrag: 25.02.04, 18:10 -
VBA + Word 2k +Makro
Von dPo2000 im Forum Visual Basic 6.0Antworten: 0Letzter Beitrag: 07.01.02, 13:15





Zitieren

Login





