Quitar datos del almacén de datos al eliminar un control de contenido
Puede eliminar un control de contenido si llama al método Delete del objeto ContentControl. Por ejemplo, el siguiente código elimina el control de contenido denominado "MyTitle".
ActiveDocument.ContentControls.Item("MyTitle").Delete
Además, puede eliminar un solo nodo si llama al método Delete del objeto CustomDataXMLNode que desee quitar. Puede eliminar un fragmento XML completo personalizado si llama al método Delete del objeto CustomXMLPart que desee quitar.
Para obtener más información acerca de los controles de contenido, vea Orking with Content Controls (Orking with Content Controls). Los objetos usados en estos ejemplos son:
CustomXMLPart (modelo de objetos básicos del sistema de Microsoft Office)
CustomXMLParts (modelo de objetos básicos del sistema de Microsoft Office)
Ejemplo 1
En el primer ejemplo de código, se crea un control de contenido y se establece una asignación XML en un control de contenido.
Cree un archivo XML personalizado válido, guárdelo en la unidad de disco y agregue un almacén de datos al documento que contiene la información a la que desee asignar.
Suponga que el control de contenido se asigna al siguiente archivo XML personalizado de ejemplo.
<?xml version="1.0" encoding="utf-8" ?>
<tree>
<fruit>
<fruitType>peach</fruitType>
<fruitType>pear</fruitType>
<fruitType>banana</fruitType>
</fruit>
</tree>
Now, suppose the content control is mapped to a <fruitType> node of the previous custom XML part.
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
Ejemplo 2
En el segundo ejemplo de código, se quita el objeto CustomXMLPart completo cuando se elimina el control de contenido.
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
Consulte también
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.