contar acentos en word

03/09/2004 - 21:21 por Juanjo | Informe spam
Es posible contar una palabra con un acento como dos
caracteres. Lo necesito para pruebas de mecanografia.
Gracias

Preguntas similare

Leer las respuestas

#1 Pilar Mueckay [MVP - Office]
04/09/2004 - 00:51 | Informe spam
Juanjo,

Desafortunadamente Word no puede contar un acento como dos caracteres.

Un rodeo sería contar con una macro cada caracter con acento, sumarlos y
luego multiplicarlo por dos.

menteAtenta,
Pilar Mueckay
MVP - Office
Ecuador

En news:019801c491eb$47ee7b10$,
Juanjo escribió:
Es posible contar una palabra con un acento como dos
caracteres. Lo necesito para pruebas de mecanografia.
Gracias
Respuesta Responder a este mensaje
#2 jjuanji1
06/09/2004 - 18:02 | Informe spam
La solucion con la macro no me queda muy clara; ¿podrias ser un poco mas
concreta, por favor? ello me resolvería mucho trabajo que tengo que
realizar manualmente.

Muchas gracias,
Juanjo.

Pilar Mueckay [MVP - Office] wrote:

Juanjo,

Desafortunadamente Word no puede contar un acento como dos caracteres.

Un rodeo sería contar con una macro cada caracter con acento, sumarlos y
luego multiplicarlo por dos.
Respuesta Responder a este mensaje
#3 OECII
06/09/2004 - 21:04 | Informe spam
La solucion con la macro no me queda muy clara; ¿podrias ser un poco mas
concreta, por favor? ello me resolvería mucho trabajo que tengo que
realizar manualmente.




Hola!

hice una macro que creo que realiza lo que requieres. Básicamente es una función
y un sub:

- La función LongPal2 la cual cuenta la longitud en caracteres de una palabra,
contando dos veces las letras acentuadas (cuenta vocales con acentos agudo,
grave, circunflejo y díéresis, si quieres agregarle otros, es bastante sencillo,
mirando el código)

- el Sub (macro) contarCaracteres2 el cual cuenta el número de letras del
documento que se encuentre activo y lo muestra en un cuadro de mensajes. Esta
macro es sólo un ejemplo y puedes ajustarla a tus necesidades.


Function LongPal2(pal As String) As Integer
'Retorna la longitud de la palabra
'contando dos veces las palabras que tienen acento
LongPal2 = 0
Dim i As Integer
For i = 1 To Len(pal)
'si es caracter acentuado lo cuenta dos veces
Select Case Mid$(pal, i, 1)
Case "á", "é", "í", "ó", "ú", "Á", _
"É", "Í", "Ó", "Ú", "à", "ë", "ï", "ö", "ü", _
"Ä", "Ë", "Ï", "Ö", "Ü", "à", "è", "ì", "ò", "ù", _
"À", "È", "Ì", "Ò", "Ù", "â", "ê", "î", "ô", "û", _
"Â", "Ê", "Î", "Ô", "Û"
LongPal2 = LongPal2 + 2

Case Else
LongPal2 = LongPal2 + 1
End Select
Next
End Function

Sub contarCaracteres2()
'esta macro cuenta el numero de letras de un documento
'contando dos veces los caracteres acentuados
Dim i As Long
Dim cont As Long
cont = 0
For i = 1 To ActiveDocument.Words.Count
cont = cont + LongPal2(Trim(ActiveDocument.Words(i)))
Next
cont = cont - 1
MsgBox "El documento actual tiene " & cont & " caracteres"

End Sub

Fin del código
OECII
Organización y Estructura del Computador II - UCV
Caracas - Venezuela
Respuesta Responder a este mensaje
#4 OECII
06/09/2004 - 21:14 | Informe spam
Hola!

Diusculpen, la macro anterior tenía un pequeño error, pues no contaba los
espacios en blanco, pero sí contaba los saltos de línea. Esta versión cuenta
también los espacios en blanco y no cluenta los saltos de línea
Inicio código --

Function LongPal2(pal As String) As Integer
'Retorna la longitud de la palabra
'contando dos veces las palabras que tienen acento
LongPal2 = 0
Dim i As Integer
For i = 1 To Len(pal)
'si es caracter acentuado lo cuenta dos veces
Select Case Mid$(pal, i, 1)
Case "á", "é", "í", "ó", "ú", "Á", _
"É", "Í", "Ó", "Ú", "à", "ë", "ï", "ö", "ü", _
"Ä", "Ë", "Ï", "Ö", "Ü", "à", "è", "ì", "ò", "ù", _
"À", "È", "Ì", "Ò", "Ù", "â", "ê", "î", "ô", "û", _
"Â", "Ê", "Î", "Ô", "Û"
LongPal2 = LongPal2 + 2
Case Else
LongPal2 = LongPal2 + 1
End Select
Next
End Function

Sub contarCaracteres2()
'esta macro cuenta el numero de letras de un documento
'contando dos veces los caracteres acentuados
Dim i As Long
Dim cont As Long
cont = 0
For i = 1 To ActiveDocument.Words.Count
If ActiveDocument.Words(i) <> vbCr Then
cont = cont + LongPal2(ActiveDocument.Words(i))
End If
Next
MsgBox "El documento actual tiene " & cont & " caracteres"
End Sub



Fin código --
Respuesta Responder a este mensaje
#5 Pilar Mueckay [MVP - Office]
07/09/2004 - 16:11 | Informe spam
OECII Excelente! :-) La macro tiene una mejor solución que la que yo había
pensado.

Juanjo, supongo que en pruebas de mecanografía también cuenta la "ñ", al
código que te plantea OECII, sólo debes añadirle otra línea

"Â", "Ê", "Î", "Ô", "Û", _
"ñ", "Ñ"

O los caracteres que pienses que valen por dos
(el signo menos abajo es para indicar que en realidad es una línea continua
pero por razones de espacio y comprensión se la pone en dos)


menteAtenta,
Pilar Mueckay
MVP - Office
Ecuador

En news:,
OECII escribió:
Hola!

Diusculpen, la macro anterior tenía un pequeño error, pues no contaba
los espacios en blanco, pero sí contaba los saltos de línea. Esta
versión cuenta también los espacios en blanco y no cluenta los saltos
de línea Inicio código --

Function LongPal2(pal As String) As Integer
'Retorna la longitud de la palabra
'contando dos veces las palabras que tienen acento
LongPal2 = 0
Dim i As Integer
For i = 1 To Len(pal)
'si es caracter acentuado lo cuenta dos veces
Select Case Mid$(pal, i, 1)
Case "á", "é", "í", "ó", "ú", "Á", _
"É", "Í", "Ó", "Ú", "à", "ë", "ï", "ö", "ü", _
"Ä", "Ë", "Ï", "Ö", "Ü", "à", "è", "ì", "ò", "ù", _
"À", "È", "Ì", "Ò", "Ù", "â", "ê", "î", "ô", "û", _
"Â", "Ê", "Î", "Ô", "Û"
LongPal2 = LongPal2 + 2
Case Else
LongPal2 = LongPal2 + 1
End Select
Next
End Function

Sub contarCaracteres2()
'esta macro cuenta el numero de letras de un documento
'contando dos veces los caracteres acentuados
Dim i As Long
Dim cont As Long
cont = 0
For i = 1 To ActiveDocument.Words.Count
If ActiveDocument.Words(i) <> vbCr Then
cont = cont + LongPal2(ActiveDocument.Words(i))
End If
Next
MsgBox "El documento actual tiene " & cont & " caracteres"
End Sub



Fin código --
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida