Private Sub Corregir()
Dim strTextoRTF As String
Dim var1 As Variant
var1 = Split(rtf.Text, " ")
Dim int1 As Integer
Dim lng1 As Long
Dim lngIdx As Long
lngIdx = 1
strTextRTF = rtf.TextRTF
For int1 = LBound(var1) To UBound(var1)
lng1 = InStr(lngIdx, rtf.TextRTF, var1(int1))
If lng1 > 0 Then
lngIdx = lng1 + Len(var1(int1))
strTextRTF = Left(strTextRTF, lng1 - 1) _
& "???" & Mid(strTextRTF, lngIdx)
End If
Next int1
'Aquí va tú código
Dim MSWord As Object, Texto As String
Set MSWord = CreateObject("Word.Basic")
MSWord.AppMinimize
MSWord.AppHide
MSWord.FileNewDefault
MSWord.EditSelectAll
MSWord.EditCut
MSWord.Insert rtf.Text
MSWord.StartOfDocument
On Error Resume Next
MSWord.ToolsSpelling
On Error GoTo 0
MSWord.EditSelectAll
Texto = MSWord.Selection
If Mid(Texto, Len(Texto), 1) = Chr(13) Then _
Texto = Mid(Texto, 1, Len(Texto) - 1)
' Aquí le damos la vuelta a la tortilla
If Len(Texto) > 1 Then
var1 = Split(Texto, " ")
lngIdx = 1
For int1 = LBound(var1) To UBound(var1)
lng1 = InStr(lngIdx,strTextRTF, "???")
If lng1 > 0 Then
lngIdx = lng1 + 3
strTextRTF = Left(strTextRTF, lng1 - 1) _
& var1(int1) & Mid(strTextRTF, lngIdx)
End If
Next int1
rtf.TextRTF = strTextRTF
End If
MSWord.FileCloseAll 2
MSWord.AppClose
Set MSWord = Nothing
End Sub