Share via


Método InvisibleApp.Undo (Visio)

Invierte la unidad de deshacer más reciente, si es posible.

Sintaxis

expresión. Deshacer

Expresión Variable que representa un objeto InvisibleApp .

Valor devuelto

Nothing

Comentarios

Utilice el método Undo para invertir acciones una unidad de deshacer cada vez.

El número de veces que el código puede llamar al método Undo depende de si el código se está ejecutando o no en el ámbito de una unidad de deshacer abierta. El código se ejecuta en el ámbito de una unidad de deshacer abierta si se cumple una de estas condiciones:

  • Es una macro o un complemento invocado por la interfaz de usuario de Microsoft Visio.

  • Está en un controlador de eventos que responde a un evento de Visio distinto del evento VisioIsIdle.

  • Está en un ámbito de deshacer creado por el usuario.

Si el código no se está ejecutando en el ámbito de una unidad de deshacer abierta, puede llamar al método Undo para cada unidad de deshacer actualmente en la pila de deshacer de Visio. Puede establecer el número máximo de unidades en la pila de deshacer (20 es el valor predeterminado) en la pestaña Opciones avanzadas del cuadro de diálogo Opciones de Visio (haga clic en la pestaña Archivo y, a continuación, haga clic en Opciones). Si el número de llamadas al método Undo supera el número de unidades de deshacer en la pila, no se realiza ninguna acción y el método Undo no genera ninguna excepción.

Si el código se está ejecutando en el ámbito de una unidad de deshacer abierta, el código puede llamar al método Undo una vez para cada operación de la unidad de deshacer abierta. Si hay llamadas adicionales al método Undo, éste genera una excepción y no realiza ninguna acción. Por ejemplo, si el código de una macro realiza dos operaciones, puede llamar al método Undo dos veces. Si la macro llama al método Undo una tercera vez, el método Undo genera una excepción.

El código que llama al método Undo desde el ámbito de una unidad de deshacer no puede llamar al método Redo para invertir la acción. Sólo se puede llamar al método Redo si no hay ninguna unidad de deshacer abierta.

El método Undo también genera una excepción si la instancia de Visio está realizando actualmente una operación de deshacer o rehacer. Para determinar si la instancia de Visio está deshacer o rehacer, use la propiedad IsUndoingOrRedoing .

Puede llamar al método Undo desde el controlador de eventos VisioIsIdle debido a que el evento VisioIsIdle sólo se puede desencadenar cuando la propiedad IsUndoingOrRedoing es False. También puede llamar al método Undo desde código que no ha sido invocado por la instancia de Visio; por ejemplo, código invocado desde el Editor de Visual Basic o desde un programa externo.

Es posible deshacer la mayoría de las acciones, pero no todas. Utilice el método Redo para invertir el efecto del método Undo.

Ejemplo:

Esta macro de Microsoft Visual Basic para Aplicaciones (VBA) muestra cómo deshacer y rehacer acciones.

 
Public Sub Undo_Example()  
 
    Dim vsoShape As Visio.Shape  
 
    'Draw a rectangle, use Undo to delete it, and  
    'then use Redo to redraw it. 
    Set vsoShape = ActivePage.DrawRectangle(1, 5, 5, 1) 
  
    'Delete the shape.  
    Visio.Application.Undo  
     
    'Bring it back.  
    Visio.Application.Redo  
 
End Sub

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.