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 :
CustomXMLPart (modèle objet principal du système Microsoft Office)
CustomXMLParts (modèle objet principal du système Microsoft Office)
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.