Share via


Undo Method [Publisher 2003 VBA Language Reference]

Undoes the last action or a specified number of actions. Corresponds to the list of items that appears when you click the arrow beside the Undo button on the Standard toolbar.

expression.Undo([Count = 1])

expression Required. An expression that returns a Document object.

Count  Optional Long. Specifies the number of actions to be undone. Default is 1, meaning that if omitted, only the last action will be undone.

Remarks

If called when there are no actions on the undo stack, or when Count is greater than the number of actions that currently reside on the stack, the Undo method will undo as many actions as possible and ignore the rest.

The maximum number of actions that can be undone in one call to Undo is 20.

Example

The following example uses the Undo method to undo actions that do not meet specific criteria.

Part 1 of the example adds a rectangular callout shape to the fourth page of the active publication, and text is added to the callout. This process creates three actions.

Part 2 of the example tests whether the font of the text added to the callout is Verdana. If not, then the Undo method is used to undo all available actions (the value of the ****

Visit UndoActionsAvailable

property is used to specify that all actions be undone). This clears all actions from the stack. A new rectangle shape and text frame are then added and the text frame is populated with Verdana text.

Dim thePage As page
Dim theShape As Shape
Dim theDoc As Publisher.Document

Set theDoc = ActiveDocument
Set thePage = theDoc.Pages(4)

With theDoc
    ' Part 1
    With thePage
        ' Setting the shape creates the first action
        Set theShape = .Shapes.AddShape(msoShapeRectangularCallout, _
                75, 75, 120, 30)
        ' Setting the text range creates the second action
        With theShape.TextFrame.TextRange
             ' Setting the text creates the third action
             .Text = "This text is not Verdana."
        End With
     End With
    
                ' Part 2
    If Not thePage.Shapes(1).TextFrame.TextRange.Font.Name = "Verdana" Then
        ' UndoActionsAvailable = 3       
        .Undo (.UndoActionsAvailable)
        With thePage
            Set theShape = .Shapes.AddShape(msoShapeRectangle, _
                    75, 75, 120, 30)
            With theShape.TextFrame.TextRange
                .Font.Name = "Verdana"
                .Text = "This text is Verdana."
            End With
        End With
    End If
End With

Applies to | Document Object