Événement Document.XMLBeforeDelete (Word)
Se produit lorsqu'un utilisateur supprime un élément XML d'un document. Si plusieurs éléments sont supprimés du document en même temps, par exemple lorsque l'utilisateur coupe et colle du code XML, l'événement est déclenché pour chaque élément supprimé.
Syntaxe
expression. XMLBeforeDelete (DeletedRange, OldXMLNode, InUndoRedo)
Expression Variable qui représente un objet Document .
Parameters
Nom | Requis/Facultatif | Type de données | Description |
---|---|---|---|
DeletedRange | Obligatoire | Range | Le contenu de l'élément XML en cours de suppression. Si seul un élément est supprimé et texte non associé, le paramètre DeletedRange n'existera pas et sera, par conséquent, défini sur Nothing. |
OldXMLNode | Obligatoire | XMLNode | Nœud supprimé. |
InUndoRedo | Obligatoire | Booléen | True indique que l'action a été effectuée à l'aide de la fonctionnalité Annuler ou Rétablir dans Microsoft Word. |
Remarques
Représente un objet Document qui a été déclaré à l’aide du mot clé WithEvents dans un module de classe. Pour plus d’informations sur l’utilisation d’événements avec un objet Document , consultez Utilisation d’événements avec l’objet Document.
Si le paramètre InUndoRedo a la valeur True, ne modifiez jamais le code XML dans un document pendant que les événements XMLAfterInsert et XMLBeforeDelete sont en cours d’exécution.
Si le paramètre InUndoRedo a la valeur False, vous pouvez insérer et supprimer le code XML dans le document, mais veillez à ce que les événements XMLAfterInsert et XMLBeforeDelete ne tentent pas de s’annuler mutuellement, ce qui entraîne une boucle infinie. Vous pouvez empêcher les boucles infinies en utilisant une globale variable de type Boolean et effectuer cette vérification au début du Gestionnaire d'erreurs, comme illustré dans l'exemple suivant.
Dim blnIsXMLDeleteRunning As Boolean
Private Sub Document_XMLBeforeDelete(ByVal DeletedRange As Range, _
ByVal OldXMLNode As XMLNode, ByVal InUndoRedo As Boolean)
If blnIsXMLDeleteRunning = False Then
blnIsXMLDeleteRunning = True
'Insert your event code here.
Else
Exit Sub
End If
End Sub
Exemple
L'exemple suivant s'exécute lorsqu'un élément XML est supprimé. Si l'élément contient du texte, un message s'affiche et demande à l'utilisateur s'il souhaite supprimer le texte contenu dans l'élément. Si l’utilisateur répond en cliquant sur Non, le contenu de l’élément est copié dans le Presse-papiers.
Private Sub Document_XMLBeforeDelete(ByVal DeletedRange As Range, _
ByVal OldXMLNode As XMLNode, ByVal InUndoRedo As Boolean)
Dim intResponse As Integer
If InUndoRedo = False Then
If Not DeletedRange Is Nothing Then
intResponse = MsgBox("Are you sure you want to delete the text " _
& vbCrLf & DeletedRange.Text, vbYesNo)
If intResponse = vbNo Then
DeletedRange.Copy
MsgBox "The text has been copied to the Clipboard." & vbCrLf & _
"Position your cursor where you want to insert it, " & _
vbCrLf & " and click Paste on the Edit menu."
End If
End If
End If
End Sub
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.