Remover dados do Armazenamento de Dados ao excluir um controle de conteúdo
You can delete a content control by calling the Delete method of the ContentControl object. For example, the following code deletes the content control with the title "MyTitle".
ActiveDocument.ContentControls.Item("MyTitle").Delete
You can also delete a single node by calling the Delete method of the CustomDataXMLNode object that you want to remove. Você poderá excluir uma parte inteira XML personalizada chamando o método Delete do objeto CustomXMLPart que você deseja remover.
Para obter mais informações sobre controles de conteúdo, consulte orking com Controles de Conteúdo. Os objetos usados nestes exemplos são:
CustomXMLPart (modelo de objeto principal do sistema do Microsoft Office)
CustomXMLParts (modelo de objeto principal do sistema do Microsoft Office)
Exemplo 1
O primeiro exemplo de código cria um controle de conteúdo e define um mapeamento XML em um controle de conteúdo.
Build a valid custom XML file, save it to your hard disk drive, and add a data store to the document that contains the information you want to map to.
Suppose the content control is mapped to the following sample custom XML file.
<?xml version="1.0" encoding="utf-8" ?>
<tree>
<fruit>
<fruitType>peach</fruitType>
<fruitType>pear</fruitType>
<fruitType>banana</fruitType>
</fruit>
</tree>
Agora, suponha que o controle de conteúdo seja mapeado para um <nó fruitType> da parte XML personalizada anterior.
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
Exemplo 2
O segundo exemplo de código remove todo o objeto CustomXMLPart quando o controle de conteúdo é excluído.
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
Confira também
Suporte e comentários
Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.