- Code: Select all Expand view RUN
- Function ORTOGRAFIA(Texto)
Local oWord,oDoc,oTexto
Local cText:=Texto
oWord:=TOleAuto():New( "Word.Application" )
oWord:Visible := .f.
oWord:Documents:Add()
oDoc := oWord:Get("ActiveDocument")
oTexto := oWord:Selection()
oTexto:Text := Texto
oDoc:CheckSpelling()
cText := oTexto:Text
oDoc:Close(0)
oWord:Quit()
oTexto:=NIL
oDoc:=NIL
oWord:=NIL
cText:=StrTran(cText,Chr(13),Chr(13)+Chr(10)) // No recuerdo por qué puse esta linea
If !Empty(cText) // si cancelamos en el chequeo de ortografia, nos devuelve una cadena vacia
Texto := cText
Endif
Return Texto
No lo hago por defecto, sino con el botón derecho del campo memo añadiendo la opción de ortografía. (modificación de la clase mget.prg)
Pero me suceden dos cosas:
1- Solamente me corrige texto que este escrito en minúsculas, si esta en mayúsculas no hace la corrección, indica que es correcto.
2- En algunos puestos la ventana de ortografía no me la saca visible, hay que buscarla con alt+tabulador para hacerla visible.
He visto en la documentación de CheckSpelling() https://learn.microsoft.com/en-us/office/vba/api/word.document.checkspelling que por defecto ignora las mayúsculas pero no se como pasarle el parámetro para que no lo haga.
Agradecería alguna sugerencia.
Gracias a todos.