1

У меня есть макрос в LibreOffice Writer, который изменяет регистр слова, в котором находится курсор. Он прекрасно работает, за исключением случаев, когда курсор находится в сноске, где он выходит из строя. Частичный код:

Document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") 

oVC = ThisComponent.CurrentController.getViewCursor
oTC = ThisComponent.Text.createTextCursorByRange(oVC) ' <-the footnote error
ctext = oTC.string ' get selected text

Рядом с последней строкой, определяющей oTC, происходит ошибка. ВидимоТекстовая спецификация в этой строке не включает сноски, что я и собираю, читая книгу Эндрю ООМЕ. Но я не смог понять, как обобщить макрос, чтобы он работал как в основном документе, так и в сносках. Любая помощь будет оценена.

1 ответ1

2
oTC = oVC.getText().createTextCursorByRange(oVC)

РЕДАКТИРОВАТЬ:

Как это работает? Он получает объект Text из oVC . В вашем случае это отличается от того, который задан ThisComponent , потому что курсор просмотра находится в области сноски, а не в основном теле.

Клетки также имеют свои собственные объекты Text, которые отличаются от основного тела. oVC.getText() работает, когда находится в ячейках.

Свойство ThisComponent.Text и метод ThisComponent.getText() делают то же самое.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .