none
Corretor Ortografico VB6 RRS feed

  • Pergunta

  • <object height="0" id="e90a5a7a-f9e9-84ab-9b18-fba8db8c92bb" type="application/gas-events-abn" width="0"></object>

    Olá Pessoal,

    Tenho o código abaixo que até o momento me funciona perfeitamente. Porém surgiu uma customização em meu cliente e não sei como resolver, lembrando que tem que ser em VB 6. O word está com configuração em Português, preciso que em determinada condição no caso quando o texto tiver sido digitado em Inglês e o usuário acione o corretor ortográfico, o mesmo já abra setado na o idioma Inglês a mesma coisa para o Espanhol, alguém saberia me dizer qual comando utilizo para essa alteração, se é que existe ?

    Obrigada desde já pela ajuda...

    Jaqueline.

    Private Sub Command1_Click()
    Text1 = SpellCheck(Text1)
    End Sub

    Public Function SpellCheck(ByVal IncorrectText$) As String
    Dim Word As Object, retText$

    On Error Resume Next

    ' Create the Object and open Word
    Set Word = CreateObject("Word.Basic")

    ' Change the active window to Word, and insert
    ' the text from Text1 into Word.

    Word.AppShow
    Word.FileNew
    Word.Insert IncorrectText

    ' Runs the Speller Corrector
    Word.ToolsSpelling
    Word.EditSelectAll


    ' Trim the trailing character from the returned text.

    retText = Word.Selection$()
    SpellCheck = Left$(retText, Len(retText) - 1)

    ' Close the Document and return to Visual Basic.

    Word.FileClose 2
    Show

    'Set the word object to nothing to liberate the
    ' occupied memory

    Set Word = Nothing
    End Function
    sexta-feira, 5 de julho de 2013 14:32

Todas as Respostas

  • Nao tem como fazer isso de forma simples.... Voce precisaria de um identificador de idiomas (a nao ser que voce possua um campo que diga qual é a lingua)


    Nem o word faz isso de forma automatica, cabendo ao usuario definir o idioma para um bloco de texto.

    Existem ferramentas online, como esta:

    http://open.xerox.com/Services/LanguageIdentifier

    que permitem identificar uma linguagem. É possivel (talvem de dificil implementaçao) utilizar a api para integraçao com outras linguagens (vb6 nao é indicado para este tipo de operaçao)

    Resumindo: o que voce quer fazer fazer nao é trivial e a obsolecencia do VB6 de nada vai ajudar.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    sexta-feira, 5 de julho de 2013 17:11
    Moderador
  • Obrigada William, sim eu irei ter um identificador de idiomas no qual o usuário irá informar. Por enquanto seria somente Inglês, Espanhol e Português.

    Saberia me dizer como implementar ?

    sexta-feira, 5 de julho de 2013 17:20
  • Entao sua duvida é como trocar o idioma no word atravez do codigo é isso?

    Tente usar isso:

    Sub Main 
     Dim wrd As Word.Application 
     Dim dic As Word.Dictionary 
     Dim txt As String 
     Dim rts As Boolean 
     txt = "This is a text" 
     'txt = "This text" 
     If wrd Is Nothing Then 
      Set wrd = New Word.Application 
      ' wrd.CheckLanguage = False 
     End If 
     If dic Is Nothing Then 
      Set dic = wrd.Languages(wdEnglishUS).ActiveSpellingDictionary 
     End If 
     rts = wrd.CheckSpelling(txt, , IgnoreUppercase, dic) 
     MsgBox txt & vbCrLf & dic & vbCrLf & "Spell check is " & rts 
     wrd.Quit 
    End Sub 

    na verdade o metodo toolspelling é antigo.. o novo metodo Checkspelling, permite que vc defina qual é o dicionario, mas só a partir do word 7.0

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------

    Sogi informatique ltée

    sexta-feira, 5 de julho de 2013 17:53
    Moderador