Поделиться через


Удаление данных из хранилища данных при удалении элемента управления содержимым

Вы можете удалить элемент управления содержимым, вызвав метод Delete объекта ContentControl . Например, следующий код удаляет элемент управления содержимым с заголовком MyTitle.

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

Вы также можете удалить один узел, вызвав метод Delete объекта CustomDataXMLNode , который требуется удалить. Вы можете удалить всю настраиваемую XML-часть, вызвав метод Delete объекта CustomXMLPart , который требуется удалить.

Дополнительные сведения об элементах управления содержимым см. в разделе Orking with Content Controls. В этих примерах используются следующие объекты:

  • ContentControl

  • ContentControls

  • CustomXMLPart (основная объектная модель системы Microsoft Office)

  • CustomXMLParts (системная объектная модель Microsoft Office)

  • XMLMapping

Пример 1

Первый пример кода создает элемент управления содержимым и задает сопоставление XML для элемента управления содержимым.

Создайте допустимый пользовательский XML-файл, сохраните его на жестком диске и добавьте хранилище данных в документ, содержащий сведения, с которыми вы хотите сопоставить.

Предположим, что элемент управления содержимым сопоставлен со следующим примером пользовательского XML-файла.

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

Теперь предположим, что элемент управления содержимым сопоставлен с <узлом fruitType> предыдущей пользовательской XML-части.

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

Пример 2

Второй пример кода удаляет весь объект CustomXMLPart при удалении элемента управления содержимым.

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

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.