Suppression des données du magasin de données lors de la suppression d’un contrôle de contenu

Vous pouvez supprimer un contrôle de contenu en appelant la méthode Delete de l'objet ContentControl. Par exemple, le code suivant supprime le contrôle de contenu ayant le titre « MyTitle » (MonTitre).

ActiveDocument.ContentControls.Item("MyTitle").Delete

Vous pouvez également supprimer un seul nœud en appelant la méthode Delete de l'objet CustomDataXMLNode à supprimer. Vous pouvez supprimer l'intégralité d'une partie XML personnalisée en appelant la méthode Delete de l'objet CustomXMLPart à supprimer.

Pour plus d’informations sur les contrôles de contenu, consultez orking with Content Controls. Les objets utilisés dans ces exemples sont les suivants :

Exemple 1

Le premier exemple de code crée un contrôle du contenu et définit un mappage XML sur un contrôle du contenu.

Créez un fichier XML personnalisé valide, enregistrez-le sur votre disque dur et ajoutez un magasin de données au document qui contient les informations sur lesquelles effectuer le mappage.

Supposons que le contrôle de contenu est mappé sur l'exemple de fichier XML personnalisé suivant.

<?xml version="1.0" encoding="utf-8" ?> 
<tree> 
  <fruit> 
    <fruitType>peach</fruitType> 
    <fruitType>pear</fruitType> 
    <fruitType>banana</fruitType> 
  </fruit> 
</tree>

Supposons maintenant que le contrôle de contenu soit mappé à un <nœud fruitType> de la partie XML personnalisée précédente.

Sub AddContentControlAndCustomXMLPart() 
 
    Dim strTitle As String 
    strTitle = "MyTitle" 
    Dim oContentControl As Word.ContentControl 
 
    Set oContentControl = ActiveDocument.ContentControls.Add(wdContentControlText) 
    oContentControl.Title = strTitle 
 
    ActiveDocument.CustomXMLParts.Add 
    ActiveDocument.CustomXMLParts(4).Load ("c:\mySampleCustomXMLFile.xml") 
 
    Dim strXPath As String 
    strXPath = "tree/fruit/fruitType" 
    oContentControl.XMLMapping.SetMapping strXPath 
     
End Sub

Exemple 2

Le deuxième exemple de code supprime intégralement l'objet CustomXMLPart lorsque le contrôle de contenu est supprimé.

Private Sub Document_ContentControlBeforeDelete( _ 
        ByVal OldContentControl As ContentControl, _ 
        ByVal InUndoRedo As Boolean) 
 
    Dim objPart As CustomXMLPart 
     
    'Always void changing the Word document surface during undo! 
    If InUndoRedo Then 
        Return 
    End If 
 
    'Also delete the part with a root element called 'tree' 
    If OldContentControl.Title = "MyTitle" Then 
        For Each objPart In ActiveDocument.CustomXMLParts 
            If objPart.DocumentElement.BaseName = "tree" Then 
                objPart.Delete 
            End If 
        Next part 
    End If 
 
End Sub

Voir aussi

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.