Сброс игнорируемых слов проверки правописания в VSTO для Word 2010 - PullRequest
1 голос
/ 12 апреля 2011

В более старых версиях Word вы могли сделать следующее, чтобы сбросить слова, которые пользователь выбрал игнорировать:

Application.ResetIgnoreAll();
ActiveDocument.SpellingChecked = false;
ActiveDocument.CheckSpelling();

Я пробую эту же функцию в VSTO для Word 2010 и пока онаперепроверяет слова «Игнорировать однажды», он не перепроверяет слова «Игнорировать все».Я попытался записать макрос при переходе в «Настройки» -> «Проверка» и нажатии «Перепроверить документ», и хотя при этом список «Игнорировать все» сбрасывается правильно, макрос, который он генерирует, совпадает с кодом выше.* Кто-нибудь знает, если это ошибка в Word 2010 / VSTO, или есть другой способ сбросить список «Игнорировать все»?

1 Ответ

0 голосов
/ 16 августа 2011

Это ошибка, но в 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, которую можно при необходимости нажать для тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...