如何在没有用户输入的情况下对字符串进行拼写检查?

时间:2016-06-30 15:43:08

标签: vb.net ms-word spell-checking

我尝试使用单词对字符串进行拼写检查,但我不想手动检查每个单词并确定正确的拼写。有没有办法自动执行此操作,以便它自己纠正所有拼写错误的单词?这是我的代码到目前为止,这是有效的,但我必须通过每个单词并点击更改......

If Address.Length > 0 Then
    Dim word_server As New Word.Application
    word_server.Visible = False
    Dim doc As Word.Document = word_server.Documents.Add()
    Dim rng As Word.Range

    rng = doc.Range()
    rng.Text = Address
    doc.Activate()
    doc.CheckSpelling()
    Address = doc.Range().Text
    doc.Close(SaveChanges:=False)
    word_server.Quit()
    doc = Nothing
    rCell.Value = Address
End If

2 个答案:

答案 0 :(得分:1)

使用GetSpellingSuggestions功能绕过GUI。看看是否有任何拼写建议,然后你可以将它设置为第一个建议(这可能是一个坏主意)。

您想如何确定正确的拼写是什么? “spon”应该是勺子,跨度,旋转,旋转还是儿子?该代码乐观地假设第一个建议(如果存在)是正确的解决方案。

宣告:

Dim oError As Word.Range

然后替换:

  doc.Activate()
  doc.CheckSpelling()

使用:

For Each oError In rng.SpellingErrors
    If oError.GetSpellingSuggestions.Count > 0 Then
        oError.Text = oError.GetSpellingSuggestions().Item(1).Name
    Else
        'Uh oh, no suggestions, do something here.
    End If
Next

答案 1 :(得分:0)

这些网站可能有所帮助。网站中的示例代码显示了如何调用Word进行拼写检查。您应该能够对其进行修改,以便与您的代码一起使用。

http://www.vb-helper.com/howto_net_spellcheck.html

http://www.vbforums.com/showthread.php?307151-SPELL-CHECK-and-WORD