Trucos Usar el diccionario de Word 97 (corrección ortográfica)   (3 artículos )

Yo he probado esto y me funciona :

Dim oWordApp As Word.Application
Dim oWordDoc As Word.Document
Dim sTmpString As String

'cramos una instancia de word
Set oWordApp = CreateObject("Word.Application")
'añadimos un nuevo documento con la plantilla normal.dot
Set oWordDoc = oWordApp.Documents.Add
'metemos en el documento el texto a corregir
oWordDoc.Select
oWordApp.Selection.TypeText Text1
On Error Resume Next
'llamamos al diccionario
oWordDoc.CheckSpelling
'cuando acaba nos muestra el documento, por eso lo ponemos invisible de nuevo
'se ve el parpadeo de la ventana pero ...
oWordApp.Visible = False
'cogemos el texto ya corregido
oWordDoc.Select
sTmpString = oWordApp.Selection.Text
'cerramos el documento sin grabarlo
oWordDoc.Close False
'liberamos el objeto
Set oWordDoc = Nothing
'cerramos word
oWordApp.Quit
'liberamos el objeto
Set oWordApp = Nothing
'pasamos el texto al textbox (es una cadena que acaba en 0)
Text1.Text = Left(sTmpString, Len(sTmpString) - 1)

Para usarlo con un RichTextBox y no perder el formato del texto haremos lo siguiente :

Dim WordApp As Word.Application

'creamos una nueva instancia de word
Set WordApp = New Word.Application
'añadimos un nuevo documento
WordApp.Documents.Add
' copiamos al portapapeles todo el texto
RichTextBox1.SelStart = 0
RichTextBox1.SelLength = Len(RichTextBox1.TextRTF)
Clipboard.Clear
Clipboard.SetText RichTextBox1.SelRTF, vbCFRTF
' lo pegamos en Word
WordApp.Selection.Paste
' activamos el corrector ortografico
WordApp.ActiveDocument.CheckSpelling
'volvemos a poner word invisible
WordApp.Visible = False
' seleccionamos todo el texto corregido
WordApp.ActiveDocument.Select
' lo copiamos al portapapeles
WordApp.Selection.Copy
' pegamos el texto RTF del portapapeles
RichTextBox1.SelRTF = Clipboard.GetText(vbCFRTF)
'cerramos el documento sin grabar
WordApp.ActiveDocument.Close False
'cerramos word
WordApp.Quit
'liberamos el objeto
Set WordApp = Nothing

Agradezco la colaboración de Herminio que me proporcionó este truco (que yo modifiqué un poco solo para fastidiarle :-) ).

En la sección Resumen podeis encontrar un mensaje enviado a la lista con otra aproximación al problema, empleando Word.Application, Word.SpellingSuggestion y Word.SpellingSuggestions.
El fichero de ejemplo podeis descargarlo también de esta página.

Download correctorortografico.zip  



Trucos Trucos

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com