Это ошибка, но в VBA есть обходной путь, который вы можете адаптировать для VSTO. Как вы правильно определили, ActiveDocument.SpellingChecked
не работает в объектной модели Word, но в представлении Backstage в разделе Параметры | Проверка Перепроверить документ кнопка работает правильно. Хотя средство записи макросов не будет отображать команды для этого, можно использовать комбинацию встроенного макроса Word и SendKeys для перехода к кнопке «вручную» для выполнения команды:
Application.Run MacroName:="FileNewDialog" 'Access Backstage view
SendKeys "%TP" 'Options|Proofing
SendKeys "%K" 'Recheck Document button
SendKeys "%Y" 'Yes button for confirmation message box
SendKeys "{ENTER}", True 'Exit the dialog box
SendKeys "{F7}" 'Perform spell check
Поскольку SendKeys переводит Word в своего рода ручной режим, программа часто игнорирует программные команды при выходе из представления Backstage. По этой причине в приведенном выше коде для проверки орфографии используется нажатие клавиши F7 вместо ActiveDocument.CheckSpelling
.
Важное примечание о тестировании SendKeys : SendKeys не может быть протестирован путем пошагового выполнения кода в IDE VBA, поскольку нажатия клавиш, которые он отправляет при запуске, отправляются активному окну во время выполнения (что быть окном разработки VBA). Чтобы протестировать SendKeys, сохраните макрос и прикрепите его к кнопке QAT, которую можно при необходимости нажать для тестирования.