Resaltando cada milésimo carácter (Microsoft Word)
Hakan necesita una macro que cuente los caracteres (sin espacios) en un documento de Word y resalte cada milésima letra. Crear una macro de este tipo es bastante sencillo: simplemente debe examinar todos los caracteres de un documento, a su vez, y solo contar los que no son espacios. La siguiente es una pequeña macro sencilla que hará precisamente eso:
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
La macro es bastante simple; examina la colección de Personajes, que contiene todos los caracteres individuales de un documento. El problema con la macro es que es lenta, muy lenta. Word no es muy eficaz para examinar caracteres individuales de esta manera. (Parece que cada vez que hace referencia a un miembro de la colección de Personajes, Word necesita examinar todos los caracteres desde el principio del documento, de nuevo).
Un enfoque diferente es simplemente recorrer el documento, expandiendo una selección hasta llegar a 1,000 caracteres sin espacio.
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
Inicie esta macro con el punto de inserción al principio del documento. Luego, la macro toma mil caracteres, asigna esa selección a una variable (sRaw), crea una variable que tiene todos los espacios eliminados (sProc) y luego calcula la longitud de sProc. Si es inferior a 1000, la selección se amplía por muchos caracteres que sea breve y se repite el proceso. Cuando la selección contiene 1000 caracteres que no son espacios, se establece el resaltado y la macro pasa al siguiente bloque de caracteres.
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios WordTips), he preparado una página especial que incluye información útil.
link: / wordribbon-WordTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
WordTips es su fuente de formación rentable en Microsoft Word.
(Microsoft Word es el software de procesamiento de texto más popular del mundo). Este consejo (7870) se aplica a Microsoft Word 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Word (Word 2007 y más tarde) aquí:
link: / wordribbon-Highlighting_Every_Thousandth_Character [Destacando cada milésimo carácter]
.