Альтернативный способ Range.GetSpellingSuggestions, чтобы распознать правильное слово - PullRequest
0 голосов
/ 05 марта 2020

Ссылаясь на https://docs.microsoft.com/en-us/office/vba/api/Word.Range.GetSpellingSuggestions, если слово написано правильно, Selection.Range.GetSpellingSuggestions.Count Возвращает 0, но бывают случаи, когда слово пишется неправильно и нет предложений, например, количество = 0, что проблематично c.

Есть ли лучший способ узнать, что слово написано правильно?

Просто отметить, что функция Application.CheckSpelling (aWord.Text) не работает ,

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

После многих экспериментов я нашел ответ. Application.CheckSpelling работает только для одного языка, даже если установлены средства проверки правописания на других языках.

Необходимо указать нужный язык: Application.CheckSpelling (MyWord.Text,,, "Russian")

Если в тексте используются разные языки, вы не можете найти ошибки, используя Application.CheckSpelling за один прогон.

0 голосов
/ 06 марта 2020

Это довольно просто, правда. Например:

Sub HiLiteSpellingErrors()
Dim Rng As Range, oSuggestions As Variant
For Each Rng In ActiveDocument.Range.SpellingErrors
  With Rng
    If .GetSpellingSuggestions.Count > 0 Then
      .HighlightColorIndex = wdYellow
    Else
      .HighlightColorIndex = wdBrightGreen
    End If
  End With
Next
End Sub

В приведенном выше коде ошибки орфографии, для которых нет предложений, выделены зеленым, а те, для которых есть предложения, выделены желтым.

Для обработки просто Выбор, измените «ActiveDocument» на «Выбор». Аналогично:

MsgBox Selection.Range.SpellingErrors.Count

вернет простое количество орфографических ошибок в выделении.

...