
Macro en Word para modificar formato de letras
Publicado por Fernando (3 intervenciones) el 25/03/2010 00:56:35
Hice una macro en word, la primera en toda mi vida, aunque las macros del Excel me encantan y tengo mi experiencia. Esta macro es para cambiar las palabras en rojo por palabras en negro y en negrita. Me esta ayudando pero tiene sus excepciones, esta es:
Sub Cambio_letra_roja_por_letra_negra()
'DESDE TECLADO Control+X
Dim i As Integer
final = InputBox("Ingrese la posicion final del caracter del parrafo:", "Para ejecutar macro:", "Numero entero, 500 por ejemplo")
Do
Selection.MoveRight Unit:=wdCharacter, Count:=1
If Selection.Font.Color = wdColorRed Then
Selection.Font.Color = wdautomatic
Selection.Font.Bold = wdToggle
End If
i = i + 1
Loop Until i = final
End Sub
Resulta que al ejecutarla, no me cambia de color los signos de puntuacion ni las palabras de una sola letra (ej: y , a , o ). Tampoco con algunos simbolos. Por lo que tengo que posicionarme manualmente en cada uno de estos excluidos, seleccionarlos y pintarlos en negrita uno por uno usando esta otra macro:
Sub fuente_de_negro_en_seleccion()
'DESDE TECLADO Control+S
Selection.Font.Color = wdautomatic
Selection.Font.Bold = wdToggle
End Sub
Chas gracias si algun guapo de la programacion me arrima solucion
Sub Cambio_letra_roja_por_letra_negra()
'DESDE TECLADO Control+X
Dim i As Integer
final = InputBox("Ingrese la posicion final del caracter del parrafo:", "Para ejecutar macro:", "Numero entero, 500 por ejemplo")
Do
Selection.MoveRight Unit:=wdCharacter, Count:=1
If Selection.Font.Color = wdColorRed Then
Selection.Font.Color = wdautomatic
Selection.Font.Bold = wdToggle
End If
i = i + 1
Loop Until i = final
End Sub
Resulta que al ejecutarla, no me cambia de color los signos de puntuacion ni las palabras de una sola letra (ej: y , a , o ). Tampoco con algunos simbolos. Por lo que tengo que posicionarme manualmente en cada uno de estos excluidos, seleccionarlos y pintarlos en negrita uno por uno usando esta otra macro:
Sub fuente_de_negro_en_seleccion()
'DESDE TECLADO Control+S
Selection.Font.Color = wdautomatic
Selection.Font.Bold = wdToggle
End Sub
Chas gracias si algun guapo de la programacion me arrima solucion
Valora esta pregunta


0