Hervorheben jedes tausendsten Zeichens (Microsoft Word)
Hakan benötigt ein Makro, das die Zeichen (ohne Leerzeichen) in einem Word-Dokument zählt und jeden 1000. Buchstaben hervorhebt. Das Erstellen eines solchen Makros ist recht einfach: Sie müssen lediglich alle Zeichen in einem Dokument untersuchen und nur diejenigen zählen, die keine Leerzeichen sind. Das Folgende ist ein einfaches kleines Makro, das genau das tut:
Sub CountThousands1() Dim J As Long Dim X As Integer X = 0 With ActiveDocument For J = 1 To .Characters.Count If .Characters(J) <> " " Then X = X + 1 If X = 1000 Then .Characters(J).Select Selection.Range.HighlightColorIndex = wdYellow X = 0 Beep End If Next J End With End Sub
Das Makro ist einfach genug; Es untersucht die Zeichensammlung, die alle einzelnen Zeichen in einem Dokument enthält. Das Problem mit dem Makro ist, dass es langsam ist – sehr langsam. Word ist nicht besonders effizient, wenn es darum geht, einzelne Zeichen auf diese Weise zu untersuchen. (Es scheint, dass Word jedes Mal, wenn Sie auf ein Mitglied der Zeichensammlung verweisen, alle Zeichen vom Anfang des Dokuments an erneut untersuchen muss.)
Ein anderer Ansatz besteht darin, einfach durch das Dokument zu gehen und eine Auswahl zu erweitern, bis Sie 1.000 Zeichen ohne Leerzeichen erhalten.
Sub CountThousands2() Dim X As Integer Dim sRaw As String Dim sProc As String Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend While Len(Selection) = 1000 sRaw = Selection sProc = Replace(sRaw, " ", "") X = 1000 - Len(sProc) While X > 0 Selection.MoveRight Unit:=wdCharacter, Count:=X, Extend:=wdExtend sRaw = Selection sProc = Replace(sRaw, " ", "") X = 1000 - Len(sProc) Wend Selection.Collapse Direction:=wdCollapseEnd Selection.MoveLeft Unit:=wdCharacter, Count:=1, Extend:=wdExtend Selection.Range.HighlightColorIndex = wdYellow Selection.Collapse Direction:=wdCollapseEnd Selection.MoveRight Unit:=wdCharacter, Count:=1000, Extend:=wdExtend Wend End Sub
Starten Sie dieses Makro mit der Einfügemarke am Anfang des Dokuments. Das Makro erfasst dann tausend Zeichen, weist diese Auswahl einer Variablen zu (sRaw), erstellt eine Variable, aus der alle Leerzeichen entfernt sind (sProc), und berechnet dann die Länge von sProc. Wenn es weniger als 1.000 ist, wird die Auswahl um so viele Zeichen erweitert, wie kurz sie war, und der Vorgang wird wiederholt. Wenn die Auswahl 1.000 Nicht-Leerzeichen enthält, wird die Markierung gesetzt und das Makro fährt mit dem nächsten Zeichenblock fort.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der WordTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
WordTips ist Ihre Quelle für kostengünstige Microsoft Word-Schulungen.
(Microsoft Word ist die weltweit beliebteste Textverarbeitungssoftware.) Dieser Tipp (7870) gilt für Microsoft Word 97, 2000, 2002 und 2003. Sie finden eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Word (Word 2007) und später) hier: