Похоже, у вас уже есть рабочее решение, поэтому позвольте мне просто сказать, что то, что вы ищете, кажется, не существует. С помощью com.sun.star.util.TextSearch
XrayTool видно, что ни у поискового объекта, ни у найденного результата нет методов, выполняющих замену.
AFAICT, SearchOptions.replaceString используется только для замены в документах, например oDoc.replaceAll(oReplace)
. Существует, XStringSubstitution
но это используется только для PathSubstitution .
Таким образом, единственный способ сделать замену самостоятельно. Раздел 19.2 макродокумента Эндрю предоставляет функцию замены строк индексом.
Лично я постоянно сталкиваюсь с такого рода ограничениями в Basic, поэтому вместо этого я предпочитаю писать макросы в Python-UNO. Обработка файлов - это еще одна вещь, которая излишне сложна в Basic.
Было бы неплохо добавить свой собственный ответ, показывающий решение, которое используется Mid()
в случае, если другие люди найдут этот вопрос. Тогда, вероятно, прими этот ответ, а не мой.