打开/自由Office宏以将视图滚动到选择

时间:2016-04-03 13:44:58

标签: openoffice.org libreoffice openoffice-basic libreoffice-basic

在Writer中,我想搜索一些文本,并在找到时将视图定位到视图/窗口的顶部。

使用以下代码

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

dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.SearchString"
args1(0).Value = ":"

dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())

视图更改并显示选择但不在任何特定位置。我希望它位于窗口/视图的顶部。

我在其他地方也发现了使用ThisComponent.currentController.getViewData()restoreViewData()。所以我试验并确定了如何更改返回的数据以获得垂直滚动但没有任何反应。例如......

vd = ThisComponent.currentController.getViewData()
vdParts = Split(vd, ";")
vdParts(6) = CLng(vdParts(6)) + 1000
vd = join(vdParts, ";")
ThisComponent.currentController.restoreViewData(vd)

有什么建议吗?

PS:我在Windows 7 x64上运行5.0.5.2版本

1 个答案:

答案 0 :(得分:1)

电子表格有View Panes可以操作,但看起来在Writer中没有类似的界面。

相反,请使用View Cursor向下移动一到两页,然后返回搜索结果的位置。

另外,请勿使用调度程序进行搜索。请改用API,例如Andrew Pitonyak's macro document的第7.14节。