Modificar una macro

12/01/2010 - 07:22 por zopita | Informe spam
Buenos días.
Tengo una macro de Word para contar el número de veces que aparece cada
carácter en un documento. Es así:

Sub ContarApariciones()
Dim iCount(0 To 255) As Integer
Dim i As Integer
Dim vCharacter As Variant
Dim sTemp As String

' Initialize the array
For i = 0 To 255
iCount(i) = 0
Next i

' Fill the array
For Each oCharacter In ActiveDocument.Characters
i = Asc(oCharacter)
iCount(i) = iCount(i) + 1
Next

' Add document for results
Documents.Add
Selection.TypeText Text:="ASCII Character Count" & vbCrLf

' Only output codes 9 through 255
For i = 9 To 255
sTemp = Chr(i)
If i < 32 Then sTemp = Trim(Str(i))
sTemp = sTemp & Chr(9) & Trim(Str(iCount(i)))
sTemp = sTemp & vbCrLf
Selection.TypeText Text:=sTemp
Next i
End Sub

Funciona bien pero me genera bastante morralla, concretamente los caracteres
con código ASCII menor que 65 o mayor de 165. Es decir, quisiera acotar el
recuento a los caracteres con código ASCII comprendido entre 65 y 165.

Sé que es una tontería, pero ando muy espesa y no consigo dar con ello.
Agradecería cualquier tipo de ayuda.

Saludos cordiales.

Preguntas similare

Leer las respuestas

#1 pepe
12/01/2010 - 15:49 | Informe spam
Puedes limitarte a imprimir sólo los caracteres que te interesan
sustituyendo la línea:

For i = 9 To 255

por

For i = 65 To 165



"zopita" escribió en el mensaje de
noticias news:
Mostrar la cita
#2 zopita
13/01/2010 - 12:56 | Informe spam
Hola, Pepe. Eso es lo primero que hice pero no ha habido forma: la macro da
un error.
Seguiré tanteando y si encuentro algo te lo cuento.

Saludos cordiales.

"pepe" escribió:

Mostrar la cita
#3 pepe
13/01/2010 - 15:31 | Informe spam
¿y falla en la línea modificada? Creo que no hay motivo a que falle en esa
línea.



"zopita" escribió en el mensaje de
noticias news:
Mostrar la cita
#4 zopita
14/01/2010 - 06:15 | Informe spam
Hola Pepe, buenos días.

El fallo aparece en la línea
iCount(j) = iCount(j) + 1

He seguido dando vueltas y alguna cosita ha salido. Tan pronto como dé con
algo coherente te pincho un mensaje.

Saludos cordiales.




"pepe" escribió:

Mostrar la cita
#5 pepe
14/01/2010 - 16:22 | Informe spam
has definido icount como entero y seguramente se desborda el contador.
Defínelo como long.



"zopita" escribió en el mensaje de
noticias news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida