Writerでは、テキストを検索したいときに、ビューをビュー/ウィンドウの上部に配置したいと思います。次のコードを使用してOpen/Libre Officeマクロを選択範囲にスクロールする
、
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を実行しています
Thx Jim。私はビューカーソルを試してみましたが、私の実験では、ビューカーソルはビューを変更して選択を表示しませんでした。私はその後、ディスパッチャの例を思い出し、それを試してみることにしました。私はうれしく驚いていました。 – Vic
前のコメントを投稿し、ジムが他の人たちによって作成したあなたの提案を見て、エディタからマクロを実行すると、ビューが更新されていないことに気付きました。キーボードショートカットを割り当てて、ビューを変更するためにマクロを実行しなければなりませんでした。デザインの欠陥ですか? – Vic
私は通常、エディタからマクロを実行しません。これは、エディタを現在のコンポーネントにします(これは便利ですが、この場合は必要ではありません)。代わりに、私は通常、キーボードショートカットを使用して 'Tools - > Macros - > Run Macro'に行きます。エディタから実行するには、ThisComponentを使用する代わりに、[desktop.getComponents()](https://www.openoffice.org/api/docs/common/ref)で始まるテキストドキュメントのコンポーネントを使用します。 /com/sun/star/frame/XDesktop.html#getComponents)。 –