Why not create a custom undo record? For example:
Code:
Sub Demo()
Dim objUndo As UndoRecord
Set objUndo = Application.UndoRecord
With objUndo
If .IsRecordingCustomRecord = False Then
.StartCustomRecord ("Demo")
'insert whatever processing you want to perform here
.EndCustomRecord
End With
ActiveDocument.Undo
End Sub