Classe UndoRecord (Word VBA)
Fornece um ponto de entrada na pilha de desfazer. Para usar uma variável de classe UndoRecord, ela primeiro precisa ser instanciada por exemplo
Dim urd as UndoRecord
Set urd = Application.UndoRecord
CustomRecordLevel
Retorna um Long que especifica o número de chamadas de ação de desfazer personalizadas que estão atualmente ativas. Somente leitura.
Se nenhuma ação de desfazer personalizada estiver ativa, essa propriedade será definida como 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
Retorna uma cadeia de caracteres que especifica a entrada que aparece na pilha de desfazer quando todas as ações de desfazer personalizadas são concluídas. Somente leitura.
Se os registros de desfazer personalizados estiverem aninhados em outros registros de desfazer personalizados, essa propriedade especificará que a cadeia de caracteres apareça na pilha de desfazer personalizada depois que todas as ações de desfazer forem concluídas. Se várias chamadas do método StartCustomRecord forem aninhadas, a cadeia especificada pela primeira chamada será retornada por esta propriedade. Se nenhuma ação estiver ativa, a propriedade retornará uma cadeia vazia.
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
Conclui a criação de um registro de desfazer personalizado.
Use o UndoRecord.StartCustomRecord para iniciar a criação de um registro undo personalizado. Para concluir a criação de um registro undo personalizado, use o método EndCustomRecord.
Sub TestUndo()
Dim objUndo As UndoRecord
Set objUndo = Application.UndoRecord
objUndo.StartCustomRecord ("My Custom Undo")
'Add some actions here
objUndo.EndCustomRecord
End Sub
IsRecordingCustomRecord
Retorna um Boolean que especifica se uma ação de desfazer personalizada está sendo registrada. Somente leitura.
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 a criação de um registro de desfazer personalizado.
StartCustomRecord inicia a criação de um registro de desfazer personalizado, que registra todas as ações feitas para o aplicativo enquanto estiver ativo em um registro definido por Name.
StartCustomRecord (Name)
Name: Especifica o nome do registro undo personalizado. Esta cadeia de caracteres é limitada a 64 caracteres. Se uma cadeia de caracteres mais for fornecida, a cadeia de caracteres será truncada para 64 caracteres.
Sub TestUndo()
Dim objUndo As UndoRecord
Set objUndo = Application.UndoRecord
objUndo.StartCustomRecord ("My Custom Undo")
'Add some actions here
objUndo.EndCustomRecord
End Sub