Поделиться через


Метод Application.Undo (Visio)

Отменяет последнюю единицу отмены, если единица отмены может быть отменена.

Синтаксис

expression. Отменить

выражение: переменная, представляющая объект Application.

Возвращаемое значение

Отсутствует

Примечания

Используйте метод Undo для отмены действий по одной единице отмены за раз.

Количество вызовов метода Undo зависит от того, выполняется ли код в области открытого блока отмены. Код выполняется в области открытого блока отмены, если это:

  • Макрос или надстройка, вызываемые пользовательским интерфейсом Microsoft Visio.

  • В обработчике событий, реагирующего на событие Visio, отличное от события VisioIsIdle .

  • В области отмены, созданной пользователем.

Если код не выполняется в области открытого блока отмены, он может вызвать метод Undo для каждого блока отмены в стеке отмены Visio. Можно задать максимальное количество единиц в стеке отмены (по умолчанию — 20) на вкладке Дополнительно диалогового окна Параметры Visio (перейдите на вкладку Файл и выберите пункт Параметры). Если количество вызовов метода Undo превышает количество единиц отмены в стеке, никаких действий не выполняется и метод Undo не вызывает исключения.

Если код выполняется в области открытого блока отмены, он может вызывать метод Undo один раз для каждой операции в блоке open undo. При наличии дополнительных вызовов метода Undo он создает исключение и не выполняет никаких действий. Например, если код в макросе выполняет две операции, он может вызвать метод Undo дважды. Если макрос вызывает метод Undo в третий раз, метод Undo создает исключение.

Код, вызывающий метод Undo из области единицы отмены, не может вызвать метод Redo для отмены действия. Метод Redo можно вызывать только при отсутствии открытых единиц отмены.

Метод Undo также вызывает исключение, если экземпляр Visio в настоящее время выполняет отмену или повтор. Чтобы определить, отменяется или повторно выполняется экземпляр Visio, используйте свойство IsUndoingOrRedoing .

Метод Undo можно вызвать из обработчика событий VisioIsIdle , так как событие VisioIsIdle может вызываться только в том случае, если свойство IsUndoingOrRedoing имеет значение False. Вы также можете вызвать метод Undo из кода, не вызываемого экземпляром Visio, например из кода, вызываемого из редактора Visual Basic или из внешней программы.

Большинство действий можно отменить, но не все. Используйте метод Redo , чтобы обратить вспять эффект метода Undo .

Пример

Этот макрос Microsoft Visual Basic для приложений (VBA) показывает, как отменить и повторить действия.

 
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

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.