Método InvisibleApp.Undo (Visio)

Reverte a unidade de desfazer mais recente, se a unidade de desfazer puder ser revertida.

Sintaxe

expressão. Desfazer

Expressão Uma variável que representa um objeto InvisibleApp .

Valor de retorno

Nada

Comentários

Use o método Undo para reverter ações, uma unidade de desfazer por vez.

O número de vezes que o código pode chamar o método Undo depende de se o código está sendo executado no escopo de uma unidade de desfazer aberta ou não. O código será executado no escopo de uma unidade de desfazer aberta se for ou estiver:

  • Uma macro ou complemento invocado pela interface do usuário do Microsoft Visio.

  • Em um manipulador de eventos respondendo a um evento do Visio diferente do evento VisioIsIdle.

  • Em um escopo de desfazer criado pelo usuário.

Se o código não estiver sendo executado no escopo de uma unidade de desfazer aberta, ele poderá chamar o método Undo para cada unidade de desfazer atualmente na pilha de desfazer do Visio. Você pode definir o número máximo de unidades na pilha de desfazer (20 é o padrão) na guia Avançado da caixa de diálogo Opções do Visio (clique na guia Arquivo e clique em Opções). Se o número de chamadas para o método Undo exceder o número de unidades de desfazer na pilha, nenhuma ação será tomada e o método Undo não levantará uma exceção.

Se o código estiver sendo executado no escopo de uma unidade de desfazer aberta, ele poderá chamar o método Undo uma vez para cada operação na unidade de desfazer aberta. Se houver chamadas adicionais para o método Undo, ele levantará uma exceção e não tomará ação alguma. Por exemplo, se o código em uma macro executar duas operações, ele poderá chamar o método Undo duas vezes. Se a macro chamar o método Undo uma terceira vez, o método Undo levantará uma exceção.

O código que chama o método Undo do escopo de uma unidade de desfazer não pode chamar o método Redo para reverter a ação. O método Redo pode ser chamado apenas quando não há unidades de desfazer abertas.

O método Undo também levantará uma exceção se a instância do Visio estiver executando um desfazer ou refazer. Para determinar se a instância do Visio está desfazendo ou refazendo, use a propriedade IsUndoingOrRedoing .

Você pode chamar o método Undo no manipulador de eventos do VisioIsIdle porque o evento VisioIsIdle pode ser acionado apenas quando a propriedade IsUndoingOrRedoing for False. Você também pode chamar o método Undo no código não invocado pela instância do Visio, por exemplo, o código invocado no Editor do Visual Basic ou em um programa externo.

Você pode desfazer a maioria das ações, mas não todas. Use o método Redo para reverter o efeito do método Undo.

Exemplo

Esta macro do Microsoft Visual Basic for Applications (VBA) mostra como desfazer e refazer ações.

 
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

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.