Я рекомендую вам изучить функциональные возможности Range, которые мы добавили как часть обновления 1.3, которое сейчас находится в режиме предварительного просмотра. Пожалуйста, следуйте инструкциям here о том, как попробовать предварительный просмотр. пожалуйста, изучите the added Range object functionalities (все, чей набор Req равен 1.3 в последней колонке)
Пожалуйста, изучите функциональность «split», которая позволяет разделить абзац на куски диапазонов, когда предоставляется набор разделителей. Например, вы можете указать разделитель пробела ("") и получить все слова в этом параграфе. Проверьте этот пример (exercise 7 on the lab), который разбивает абзац на слова.
В сочетании с функциональностью разделения вы можете использовать методы getRange и expandTo для расширения диапазона. (так что вы получите от индекса 'x' до 'y'
по вашему второму вопросу. После того, как у вас есть диапазон, вы можете обернуть его с помощью элемента управления контентом (range.insertContentControl и затем указать заголовок для него), так что вы можете использовать Office.context.bindings.addToNamedItemAsync API для создания Textbinding и подписаться to the BindingSelected event, как показан на этом примере.
Надеются, что это поможет вам в правильном направлении.