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.
 

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:
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 similares