для тех из нас, кто предпочитает JavaScript для написания макросов OOo, вот минимальный фрагмент, который должен работать (проверено, но я выделил этот код из более широкого контекста):
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();