Classe UndoRecord (Word VBA)

Fournit un point d'entrée dans la pile d'annulation.

Pour utiliser une variable de classe UndoRecord, elle doit d'abord être instanciée, par exemple

Dim urd as UndoRecord
Set urd = Application.UndoRecord

Les variables du type UndoRecord peuvent être définies à l'aide de la procédure Application.UndoRecord

CustomRecordLevel

Renvoie un type long qui spécifie le nombre d’appels d’action d’annulation personnalisés actuellement actifs.

Si aucune action d’annulation personnalisée n’est active, cette propiété est définie sur 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

Renvoie une valeur de type String qui spécifie l’entrée qui apparaît sur la pile d’annulation lorsque toutes les actions d’annulation personnalisées sont terminées.

Si des enregistrements d'annulation personnalisés sont imbriqués dans d'autres enregistrements d'annulation personnalisés, cette propriété spécifie quelle chaîne apparaît sur la pile d'annulation une fois toutes les actions d'annulation terminées.

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

Termine la création d'un enregistrement d'annulation personnalisé.

UndoRecord.StartCustomRecord vous permet de lancer la création d'un enregistrement d'annulation personnalisé.

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

IsRecordingCustomRecord

Renvoie une valeur de type Boolean qui indique si une action d’annulation personnalisée est en cours d’enregistrement.

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

Commence la création d'un enregistrement d'annulation personnalisé.

StartCustomRecord commence la création d’un enregistrement d’annulation personnalisé qui enregistre toutes les actions réalisées sur l’application tant qu’elle est active dans un enregistrement défini par Name.

StartCustomRecord (Name)

Name: Spécifie le nom de l'enregistrement d'annulation personnalisé.

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