Я хочу разработать надстройку MS Word 2010 (2013/2016), которая работает как инструмент проверки орфографии (восстанавливает символы акцента) для турецкого текста. Я хочу дать 3 варианта (через контекстное меню) пользователям использовать этот инструмент.Как манипулировать Word Word Word Word
- исправить весь текст в документе. (включая те, что указаны в таблицах и списках и т. д.)
- исправить весь текст в выбранной области
- исправить слово в позиции курсора.
Для первого варианта я пытался перебирать все слова и закрепить их по одному с помощью следующего кода:
var words = App.ActiveDocument.Words;
foreach (Range word in words)
{
var corr = MyCorrecter(word.Text);
word.Select();
App.Selection.TypeText(corr);
}
Однако это застрявшей в бесконечной петле. word.Next()
всегда возвращает первое слово. Если я удалю строку word.Text = MyCorrecter(word.Text);
, код успешно повторит все слова. Существуют примеры поиска/замены, но они не очень эффективны для этого конкретного случая.
Одним словом, что является самым эффективным способом манипулирования словами один за другим в Word Document?
@stuartd Код выше, за исключением строки 'word.Text = MyCorrecter (word.Text);', также проходит через каждое слово. Но когда я устанавливаю текст слова, это не работает. – hrzafer
какой «не работает» - текст не изменился, есть ошибка, или ..? – stuartd
@stuartd Я редактировал вопрос. Пожалуйста, перечитайте абзац прямо под кодом. – hrzafer