Compartir a través de


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:

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.