VBA 用于检查拼写错误单词前后添加单词的宏,以提供更正建议

VBA Macro to check addition of word before, after with misspelled word for a suggested correction

用例:我正在使用语音听写软件给自己做笔记,然后粘贴到 MS-Word 中。该软件做得不错,但会破坏一些单词,导致大量拼写错误。其中第 1 类基本上是同音异义词,主要是技术术语。我构建了一个很好的 VBA 宏,它使用查找和替换,从电子表格中提取同音异义词和所需的更正。效果很好。第 2 类更难解决,主要包含由于软件将随机空格插入到其他拼写正确的单词中而导致的拼写错误。我没有看到明确的模式,就像总是在音节中断或双字母之间一样,但它经常发生在一个或多个音节是一个正确拼写的单词的地方,而另一个音节被切断,单独的那个部分不是一个有效的单词。例如转录“类别”与“类别”。正确的曲子可以是上半场也可以是下半场。

代码需要:

结果会是这样的:

编码以更正由于空格引起的拼写错误 -> 编码以纠正由于间距引起的拼写错误

我知道如何调用拼写检查、循环遍历范围、获取拼写建议等,但我正在努力寻找如何识别前一个和下一个单词,然后 运行 在原始拼写检查会话。

Sub SpellCheck()
Dim Rng As Range, oSuggestions As Variant
For Each Rng In ActiveDocument.Range.SpellingErrors
  With Rng
    If .GetSpellingSuggestions.Count > 0 Then
      
' TBD

  End If
  End With
Next
End Sub

有什么建议吗?我愿意接受一定程度的误报或必须手动更正的单词。只是修复上述代表性示例的东西将是巨大的。非常感谢!

也许:

Sub SpellCheck()
Dim Rng As Range, oSuggestions As Variant
For Each Rng In ActiveDocument.Range.SpellingErrors
  With Rng
    If .Characters.First.Previous = " " Then
      .Characters.First.Previous.Delete
      .Start = .Words.First.Start
      If .SpellingErrors.Count > 0 Then
        ActiveDocument.Undo
        If .Characters.Last.Next = " " Then
          .Characters.Last.Next.Delete
          .End = .Words.Last.End
          If .SpellingErrors.Count > 0 Then ActiveDocument.Undo
        End If
      End If
    End If
  End With
Next
End Sub