InvisibleApp. BeginUndoScope-Methode (Visio)InvisibleApp.BeginUndoScope method (Visio)

Startet eine Transaktion mit einer eindeutigen Bereichs-ID für eine Instanz von Microsoft Visio.Starts a transaction with a unique scope ID for an instance of Microsoft Visio.

SyntaxSyntax

Ausdruck. BeginUndoScope (bstrUndoScopeName)expression.BeginUndoScope (bstrUndoScopeName)

Ausdruck Eine Variable, die ein InvisibleApp -Objekt darstellt.expression A variable that represents an InvisibleApp object.

ParameterParameters

NameName Erforderlich/OptionalRequired/Optional DatentypData type BeschreibungDescription
bstrUndoScopeNamebstrUndoScopeName ErforderlichRequired StringString Der Name des Bereichs, kann auf der Visio-Benutzeroberfläche angezeigt werden.The name of the scope; could appear in the Visio user interface.

RückgabewertReturn value

LongLong

HinweiseRemarks

Wenn Sie wissen möchten, ob Ereignisse, die Sie erhalten haben, das Ergebnis einer bestimmten Operation sind, die Sie initiiert haben, verwenden Sie die Methoden BeginUndoScope und EndUndoScope , um den Vorgang einzubinden.If you need to know whether events that you receive are the result of a particular operation that you initiated, use the BeginUndoScope and EndUndoScope methods to wrap your operation. Verwenden Sie im Ereignishandler die IsInScope-Eigenschaft, um zu testen, ob die von der BeginUndoScope-Methode zurückgegebene Bereichs-ID Bestandteil des aktuellen Kontexts ist.In your event handlers, use the IsInScope property to test whether the scope ID returned by the BeginUndoScope method is part of the current context. Stellen Sie sicher, dass Sie die Bereichs-ID, die Sie in der BeginUndoScope -Eigenschaft gespeichert haben, löschen, wenn Sie das ExitScope -Ereignis mit dieser ID erhalten.Make sure that you clear the scope ID that you stored from the BeginUndoScope property when you receive the ExitScope event with that ID.

Sie müssen Aufrufe der BeginUndoScope-Methode mit Aufrufen der EndUndoScope-Methode ausgleichen.You must balance calls to the BeginUndoScope method with calls to the EndUndoScope method. Wenn Sie die BeginUndoScope-Methode aufrufen, sollten Sie die EndUndoScope-Methode aufrufen, sobald Sie die Aktionen abgeschlossen haben, die den Bereich bilden.If you call the BeginUndoScope method, you should call the EndUndoScope method as soon as you are finished with the actions that constitute your scope. Obwohl Aktionen für mehrere Dokumente in einem Bereich stabil sein sollten, kann das Schließen eines Dokuments den Nebeneffekt haben, dass die Rückgängig-Informationen für den derzeit geöffneten Bereich sowie die Rückgängig- und Wiederholen-Stapel gelöscht werden.Also, while actions to multiple documents should be robust within a single scope, closing a document may have the side effect of clearing the undo information for the currently open scope as well as clearing the undo and redo stacks. Wenn dies geschieht, werden durch die Übergabe von bCommit = false an EndUndoScope die Undo-Informationen nicht wiederhergestellt.If that happens, passing bCommit = False to EndUndoScope does not restore the undo information.

Sie können die Methoden BeginUndoScope und EndUndoScope auch verwenden, um dem Rückgängig-Datenstrom von Visio eine von einem Add-On definierte Aktion hinzuzufügen.You can also use the BeginUndoScope and EndUndoScope methods to add an action defined by an add-on to the Visio undo stream. Dies ist nützlich, wenn Sie in Szenarios ohne Modus arbeiten, in denen der initiierende Agent Bestandteil der Benutzeroberfläche eines Add-Ons oder einer programmgesteuerten Aktion ohne Modus ist.This is useful when you are operating from modeless scenarios where the initiating agent is part of an add-on's user interface or a modeless programmatic action.

Hinweis

Die meisten Visio-Aktionen sind bereits in interne Rückgängig-Bereiche eingeschlossen, in der Anwendung ausgeführte Add-Ons müssen also diese Methode nicht aufrufen.Most Visio actions are already wrapped in internal undo scopes, so add-ons running within the application do not need to call this method.

BeispielExample

Mit diesem Beispiel wird gezeigt, wie die BeginUndoScope-Methode verwendet wird, um eine Transaktion zu starten, die eine eindeutige Bereichs-ID für eine Instanz von Visio aufweist.This example shows how to use the BeginUndoScope method to start a transaction that has a unique scope ID for an instance of Visio.

 
Private WithEvents vsoApplication As Visio.Application 
Private lngScopeID As Long 
 
Public Sub BeginUndoScope_Example() 
 
 Dim vsoShape As Visio.Shape 
 
 'Set the module-level application variable to 
 'trap application-level events. 
 Set vsoApplication = Application 
 
 'Begin a scope and set the module-level scope ID variable. 
 lngScopeID = Application.BeginUndoScope("Draw Shapes") 
 
 'Draw three shapes. 
 Set vsoShape = ActivePage.DrawRectangle(1, 2, 2, 1) 
 ActivePage.DrawOval 3, 4, 4, 3 
 ActivePage.DrawLine 4, 5, 5, 4 
 
 'Change a cell to trigger the CellChanged event. 
 vsoShape.Cells("Width").Formula = 5 
 
 'End and commit this scope. 
 Application.EndUndoScope lngScopeID, True 
 
 End Sub 
 
 Private Sub vsoApplication_CellChanged(ByVal Cell As IVCell) 
 
 'Check to see if this cell change is the result of something 
 'happening within the scope. 
 If vsoApplication.IsInScope(lngScopeID) Then 
 Debug.Print Cell.Name & " changed in scope "; lngScopeID 
 End If 
 
End Sub 
 
Private Sub vsoApplication_EnterScope(ByVal app As IVApplication, _ 
 ByVal nScopeID As Long, _ 
 ByVal bstrDescription As String) 
 
 If vsoApplication.CurrentScope = lngScopeID Then 
 Debug.Print "Entering my scope " & nScopeID 
 Else 
 Debug.Print "Enter Scope " & bstrDescription & "(" & nScopeID & ")" 
 End If 
 
End Sub 
 
Private Sub vsoApplication_ExitScope(ByVal app As IVApplication, _ 
 ByVal nScopeID As Long, _ 
 ByVal bstrDescription As String, _ 
 ByVal bErrOrCancelled As Boolean) 
 
 If vsoApplication.CurrentScope = lngScopeID Then 
 Debug.Print "Exiting my scope " & nScopeID 
 Else 
 Debug.Print "Exit Scope " & bstrDescription & "(" & nScopeID & ")" 
 End If 
 
End Sub

Support und FeedbackSupport and feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation?Have questions or feedback about Office VBA or this documentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.