![LibreOffice 宏 - 访问脚注文本](https://linux22.com/image/1551978/LibreOffice%20%E5%AE%8F%20-%20%E8%AE%BF%E9%97%AE%E8%84%9A%E6%B3%A8%E6%96%87%E6%9C%AC.png)
我在 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 的地方。显然,该行中的 .Text 规范不包含脚注,这也是我在阅读 Andrew 的 OOME 一书时了解到的。但我还没能弄清楚如何概括宏,以便它既能在主文档中工作,又能在脚注中工作。任何帮助都将不胜感激。
答案1
oTC = oVC.getText().createTextCursorByRange(oVC)
编辑:
它是如何工作的?它从 获取文本对象oVC
。在您的情况下,这与 给出的不同ThisComponent
,因为视图光标位于脚注区域而不是正文中。
单元格还具有自己的与主体不同的文本对象。 oVC.getText()
当位于单元格中时也可以工作。
属性ThisComponent.Text
和方法ThisComponent.getText()
做同样的事情。