Klasse UndoRecord (Word VBA)

Die Klasse UndoRecord stellt einen Einstiegspunkt für den Rückgängig-Stapel bereit.

Set

Um eine UndoRecord -Klassenvariable zu verwenden, muss sie zuerst instanziert werden, beispielsweise

Dim urd as UndoRecord
Set urd = Application.UndoRecord

Klassen Variablen vom Typ UndoRecord können mit der Prozedur Application.UndoRecord festgelegt werden

CustomRecordLevel

Gibt einen Wert vom Typ Long zurück, der die Anzahl der benutzerdefinierten Undo-Aktionsaufrufe angibt, die derzeit aktiv sind.

Wenn keine benutzerdefinierte Rückgängig-Aktion aktiv ist, wird diese Eigenschaft auf "0" festgelegt.

Dim objUndo As UndoRecord 
 
Sub MyFunction() 
 Set objUndo = Application.UndoRecord 
 
 ' Verify that a custom undo record is already being recorded, and if not, start one 
 If objUndo.IsRecordingCustomRecord = False Then 
 objUndo.StartCustomRecord("New Undo Record") 
 End If 
 ' Add some actions here. 
 objUndo.EndCustomRecord 
 
 ' Verify that any custom undo action calls are currently active. 
 If objUndo.CustomRecordLevel > 0 Then 
 Debug.Print "An undo record call was not closed!" 
 End If 
End Sub

CustomRecordName

Gibt einen Wert vom Typ String zurück, der den Eintrag angibt, der im Rückgängig-Stapel angezeigt wird, wenn alle benutzerdefinierten Rückgängig-Aktionen abgeschlossen wurden.

Wenn benutzerdefinierte Rückgängig-Datensätze in anderen benutzerdefinierte Rückgängig-Datensätzen geschachtelt sind, gibt diese Eigenschaft an, welche Zeichenfolge im Rollbackpuffer angezeigt wird, nachdem alle benutzerdefinierten Rückgängig-Aktionen abgeschlossen sind.

Sub WalkUndoRecordStack()
Dim objUndo As UndoRecord
 
'Create UndoRecord object
Set objUndo = Application.UndoRecord
 
'Begin first custom record
objUndo.StartCustomRecord ("First call")
    'Begin nested second custom record
    objUndo.StartCustomRecord ("Second call")
        'Begin nested third undo record
        objUndo.StartCustomRecord ("Third call")
            'Message for the third call is written first to the document
            Me.Content.InsertAfter "Third call. "
            'End third custom record
        objUndo.EndCustomRecord
        'Message for the second call is written second to the document
        Me.Content.InsertAfter "Second call. "
    'End second custom record
    objUndo.EndCustomRecord
    'Message for first call is written third to the document
    Me.Content.InsertAfter "First call. "
'End first custom record
objUndo.EndCustomRecord

Set objUndo = Nothing
End Sub

EndCustomRecord

Schließt die Erstellung eines benutzerdefinierten Rückgängig-Datensatzes ab.

Verwenden Sie die UndoRecord. StartCustomRecord , um die Erstellung eines benutzerdefinierten Undo-Eintrags zu initiieren.

Sub TestUndo() 
Dim objUndo As UndoRecord 
 
Set objUndo = Application.UndoRecord 
objUndo.StartCustomRecord ("My Custom Undo") 
    'Add some actions here 
objUndo.EndCustomRecord 
     
End Sub

IsRecordingCustomRecord

Gibt einen Wert vom Typ Boolean zurück, der angibt, ob eine benutzerdefinierte Undo-Aktion aufgezeichnet wird.

Dim objUndo as UndoRecord 
Set objUndo = Application.UndoRecord 
 
If objUndo.IsRecordingCustomRecord = False Then 
objUndo.StartCustomRecord ("My Custom Undo") 
End If 
'Custom undo actions here 
objUndo.EndCustomRecord 

Parent

Gibt einen Wert vom Typ Object zurück, der das übergeordnete Objekt des angegebenen UndoRecord-Objekts darstellt.

Dim objParent As Object
Set objParent = Application.UndoRecord.Parent

StartCustomRecord

Leitet die Erstellung eines benutzerdefinierten Rückgängig-Datensatzes ein.

StartCustomRecord beginnt die Erstellung eines benutzerdefinierten Rückgängig-Datensatzes, der alle Aktionen unter einem durch den Namen Name definierten Datensatz aufzeichnet, die in der Anwendung ausgeführt werden, während sie aktiv ist.

Syntax : expression.StartCustomRecord (Name)

Name: Gibt den Namen des benutzerdefinierten Undo-Eintrags an.

Sub TestUndo() 
Dim objUndo As UndoRecord 
 
Set objUndo = Application.UndoRecord 
objUndo.StartCustomRecord ("My Custom Undo") 
    'Add some actions here 
objUndo.EndCustomRecord 
     
End Sub