Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Desarrollo de Macros y programación en UNO, usar las API, llamar programas externos...
Responder
Varkyrion
Mensajes: 15
Registrado: Jue Sep 19, 2019 8:45 pm

Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Mensaje por Varkyrion »

Buenos días.

Quizá es medio básico pero no estaría encontrando como. Estaría necesitando un macro de Writer que busque ciertas palabras o expresiones en un documento, si las encuentra que las resalte y que luego de buscar muestre un mensaje con un botón de "Aceptar" que diga, por ejemplo "Se han encontrado palabras a modificar".

Y si pudiera tener un contador de cuantas veces se corrió la Macro mejor.

Desde ya muchas gracias por su colaboración.
OpenOffice Versi??n: 5.4.4.2 Windows 7 Professional Service Pack 1
FJCC-ES
Mensajes: 867
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Mensaje por FJCC-ES »

¿Quiere buscar las mismas palabras cada vez? ¿Cuántas son?
Varkyrion
Mensajes: 15
Registrado: Jue Sep 19, 2019 8:45 pm

Re: Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Mensaje por Varkyrion »

Las mismas palabras cada vez y son al rededor de 30 solas y en expresiones. Por ejemplo "Nro" y "dirección contraria".
OpenOffice Versi??n: 5.4.4.2 Windows 7 Professional Service Pack 1
FJCC-ES
Mensajes: 867
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Mensaje por FJCC-ES »

La macro en el archivo adjunto busca las cadenas "Nro" y "dirección contraria". Puede añadir palabras a la lista, separando las con |.

Código: Seleccionar todo

Sub BuscarTexto
oSDesc = ThisComponent.createSearchDescriptor()
oSDesc.SearchString = "Nro|dirección contraria"
oSDesc.SearchRegularExpression = TRUE
oFound = ThisComponent.findAll(oSDesc)
If oFound.Count > 0 Then
 ThisComponent.CurrentController.select(oFound)
End If
print  "Se han encontrado " & oFound.Count & " palabras a modificar" 
End Sub
Adjuntos
BuscarCadenas.odt
(16.04 KiB) Descargado 94 veces
Varkyrion
Mensajes: 15
Registrado: Jue Sep 19, 2019 8:45 pm

Re: Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Mensaje por Varkyrion »

Si no entiendo mal lo que faltaría ahí sería lo de remarcarlos, no? Muchas gracias!
OpenOffice Versi??n: 5.4.4.2 Windows 7 Professional Service Pack 1
FJCC-ES
Mensajes: 867
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Mensaje por FJCC-ES »

¿De qué manera quiere remarcarlos?
Varkyrion
Mensajes: 15
Registrado: Jue Sep 19, 2019 8:45 pm

Re: Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Mensaje por Varkyrion »

Resaltando el fondo de las palabras encontradas en amarillo, como si estuviera usando el "Color de resalte de caracteres"
OpenOffice Versi??n: 5.4.4.2 Windows 7 Professional Service Pack 1
FJCC-ES
Mensajes: 867
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Mensaje por FJCC-ES »

Código: Seleccionar todo

Sub BuscarTexto
oSDesc = ThisComponent.createSearchDescriptor()
oSDesc.SearchString = "Nro|dirección contraria"
oSDesc.SearchRegularExpression = TRUE
oFound = ThisComponent.findAll(oSDesc)

If oFound.Count > 0 Then
  Cnt = oFound.getCount()   
  for i = 0 to (Cnt - 1)
    Txt = oFound.getByIndex(i)
    Txt.CharBackColor = 16776960
 next i
End If
print  "Se han encontrado " & oFound.Count & " palabras a modificar" 
End Sub
Varkyrion
Mensajes: 15
Registrado: Jue Sep 19, 2019 8:45 pm

Re: Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Mensaje por Varkyrion »

Muchas gracias y disculpas por la demora de la respuesta.

Recién ahora pude probar la macro y me surgió la duda si hay posibilidad de que la búsqueda de palabras discrimine entre mayúsculas y minúsculas.
OpenOffice Versi??n: 5.4.4.2 Windows 7 Professional Service Pack 1
FJCC-ES
Mensajes: 867
Registrado: Mié Mar 25, 2009 1:19 am
Ubicación: Colorado, USA

Re: Buscar cadenas de texto, resaltarlas y enviar un mensaje.

Mensaje por FJCC-ES »

Código: Seleccionar todo

Sub BuscarTexto
oSDesc = ThisComponent.createSearchDescriptor()
oSDesc.SearchString = "Nro|dirección contraria"
oSDesc.SearchCaseSensitive = TRUE  '<- descriminar entre mayúsculas y minúsculas #####
oSDesc.SearchRegularExpression = TRUE
oFound = ThisComponent.findAll(oSDesc)

If oFound.Count > 0 Then
  Cnt = oFound.getCount()   
  for i = 0 to (Cnt - 1)
    Txt = oFound.getByIndex(i)
    Txt.CharBackColor = 16776960
 next i
End If
print  "Se han encontrado " & oFound.Count & " palabras a modificar" 
End Sub
Responder