Evento Document.XMLAfterInsert (Word)

Este evento se produce cuando un usuario agrega un nuevo elemento XML a un documento. Si se agrega más de un elemento a la vez (por ejemplo, al cortar y pegar XML), el evento se ejecuta por cada uno de los elementos insertados.

Sintaxis

expresión. XMLAfterInsert'(NewXMLNode**, InUndoRedo)

Expresión Variable que representa un objeto 'Document' que se ha declarado mediante la palabra clave WithEvents en un módulo de clase. Para obtener información sobre cómo usar eventos con un objeto Document , consulte Uso de eventos con el objeto Document.

Parameters

Nombre Obligatorio/opcional Tipo de datos Descripción
NewXMLNode Obligatorio XMLNode Nodo XML recién agregado.
InUndoRedo Obligatorio Boolean True indica que la acción se realizó mediante la característica de Deshacer o Rehacer de Microsoft Word.

Comentarios

Si el valor del parámetro InUndoRedo es True, no se debe cambiar nunca el código XML en un documento mientras los eventos XMLAfterInsert y XMLBeforeDelete se estén ejecutando.

Si el valor del parámetro InUndoRedo es False, puede insertar y eliminar el código XML en el documento, pero tenga cuidado de que los eventos XMLAfterInsert y XMLBeforeDelete no intenten anularse mutuamente, causando así un bucle infinito. Bucles infinitos se pueden evitar mediante el uso de un global variable Boolean y que se comprueba al principio del controlador de errores, como se muestra en el ejemplo siguiente.

Dim blnIsXMLInsertRunning As Boolean 
 
Private Sub Document_XMLAfterInsert(ByVal DeletedRange As Range, _ 
 ByVal OldXMLNode As XMLNode, ByVal InUndoRedo As Boolean) 
 
 If blnIsXMLInsertRunning = False Then 
 blnIsXMLInsertRunning = True 
 'Insert your event code here. 
 Else 
 Exit Sub 
 End If 
End Sub

Ejemplo:

En el siguiente ejemplo, se valida un nodo recién agregado y, si éste no es válido, aparece un mensaje que describe el error de validación.

Private Sub Document_XMLAfterInsert(ByVal NewXMLNode As XMLNode, _ 
 ByVal InUndoRedo As Boolean) 
 
 NewXMLNode.Validate 
 
 If NewXMLNode.ValidationStatus <> wdXMLValidationStatusOK Then 
 MsgBox NewXMLNode.ValidationErrorText 
 End If 
End Sub

Consulte también

Objeto Document

Soporte técnico y comentarios

¿Tiene preguntas o comentarios sobre VBA para Office o esta documentación? Vea Soporte técnico y comentarios sobre VBA para Office para obtener ayuda sobre las formas en las que puede recibir soporte técnico y enviar comentarios.