IOW マクロの実行時に OOo の元に戻す/やり直しを正しく機能させるにはどうすればよいですか?
これは私の以前の質問に関連しています: #853176
IOW マクロの実行時に OOo の元に戻す/やり直しを正しく機能させるにはどうすればよいですか?
これは私の以前の質問に関連しています: #853176
OOo マクロを記述するために JavaScript を好む人のために、動作するはずの最小限のスニペットを次に示します(テスト済みですが、このコードをより大きなコンテキストから分離しました)。
importClass( Packages.com.sun.star.document.XUndoManager );
importClass( Packages.com.sun.star.document.XUndoManagerSupplier );
var doc = XSCRIPTCONTEXT.getDocument();
var undo_manager = UnoRuntime.queryInterface(XUndoManagerSupplier, doc).getUndoManager();
undo_manager.enterUndoContext( 'your descriptive title here' );
// get stuff done
undo_manager.leaveUndoContext();
UndoManager と対話して、enterUndoContext()
マクロの最初と最後に呼び出すことができますleaveUndoContext()
。例えば:
Dim undo As Object
undo = ThisComponent.UndoManager
undo.enterUndoContext("MyAtomicTest")
...
[YOUR COMPLEX OPERATIONS HERE]
...
undo.leaveUndoContext
これにより、ユーザーには「MyAtomicTest」として表示されるアトミックな元に戻す操作が作成されます。