Clase UndoRecord (Word VBA)

Proporciona un punto de entrada a la pila de Deshacer. Para usar una variable de clase UndoRecord, primero debe ser instanciado, por ejemplo


Dim urd as UndoRecord
Set urd = Application.UndoRecord

CustomRecordLevel

Devuelve un valor de tipo Long que especifica el número de llamadas de acción de deshacer personalizadas que están activas actualmente.

Si no hay acción de Deshacer personalizada activa, esta propiedad se establece en 0.


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

Devuelve una cadena que especifica la entrada que aparece en la pila de deshacer cuando se han completado todas las acciones de deshacer personalizadas.

Si los registros de Deshacer personalizados están anidados en otros registros de Deshacer personalizados, esta propiedad especifica qué cadena aparece en la pila de Deshacer personalizada después de que todas las acciones de Deshacer se hayan completado.


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

Completa la creación de un registro de Deshacer personalizado.

Usar el UndoRecord.StartCustomRecord para iniciar la creación de un registro de deshacer personalizado.


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

IsRecordingCustomRecord

Devuelve un valor Boolean que especifica si se va a registrar una acción de deshacer personalizada.


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 

StartCustomRecord

Inicia la creación de un registro de Deshacer personalizado.

StartCustomRecord comienza la creación de un registro de Deshacer personalizado, que registra todas las acciones realizadas a la aplicación mientras está activa en un registro definido por Name.

StartCustomRecord (Name)

Name: Especifica el nombre del registro de deshacer personalizado.


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