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


Фильтрация списка стандартных блоков в элементе управления содержимым

При использовании элементов управления содержимым вместе со стандартными блоками вы можете помочь пользователям, указав, какое содержимое они могут вставлять, и ограничить их выбор. Это можно сделать, отфильтровав список стандартных блоков, отображаемых для элемента управления содержимым. Чтобы отфильтровать список стандартных блоков для элемента управления содержимым, используйте свойство BuildingBlockType для элемента управления содержимым. Вы можете дополнительно отфильтровать список стандартных блоков, задав свойство BuildingBlockCategory для элемента управления содержимым.

Список стандартных блоков для элемента управления содержимым можно отфильтровать при создании элемента управления содержимым. Однако можно также программно отфильтровать список стандартных блоков по расположению курсора или значению другого элемента управления содержимым. Для начала вам потребуется настраиваемая коллекция стандартных блоков. Сведения о создании настраиваемой коллекции стандартных блоков см. в статье Создание пользовательской коллекции стандартных блоков.

Пример 1

В следующем примере показано, как отфильтровать список стандартных блоков по определенной коллекции.

Примечание.

Запустите код в разделе "Создание пользовательской коллекции стандартных блоков" перед выполнением кода в этом разделе.

Sub CreateFilteredContentControl_SampleOneA() 
 Dim objCC As ContentControl 
 
 Set objCC = ActiveDocument.ContentControls.Add( _ 
 wdContentControlBuildingBlockGallery, Selection.Range) 
 
 objCC.BuildingBlockType = wdTypeCustom1 
End Sub

Список стандартных блоков можно отфильтровать еще дальше, указав определенную категорию в коллекции. В следующем примере показано, как отфильтровать список стандартных блоков, чтобы включить только стандартные блоки в категорию указанной коллекции.

Sub CreateFilteredContentControl_SampleOneB() 
 Dim objCC As ContentControl 
 
 Set objCC = ActiveDocument.ContentControls.Add( _ 
 wdContentControlBuildingBlockGallery, Selection.Range) 
 
 objCC.BuildingBlockType = wdTypeCustom1 
 objCC.BuildingBlockCategory = "Tertiary Headings" 
End Sub

Пример 2

Чтобы отфильтровать список стандартных блоков по положению курсора, необходимо использовать событие ContentControlOnEnter . Например, если у вас есть элемент управления контентом с именем Тип отчета, который может быть задан как "финансовый" или "маркетинг", можно создать элемент управления содержимым со списком возможных отказов от ответственности. Элемент управления содержимым для отказов будет отображать все заявления об отказе, если тип отчета не задан, и только соответствующее подмножество, если свойство задано. В следующем примере список стандартных блоков для элемента управления содержимым фильтруется по значению другого элемента управления содержимым в документе.

Private Sub Document_ContentControlOnEnter(ByVal ContentControl As ContentControl) 
 Dim objCC As ContentControl 
 Dim objType As ContentControl 
 
 Set objCC = ContentControl 
 Set objType = ActiveDocument.ContentControls.Item("Report Type") 
 
 If objCC.Title = "Disclaimer" Then 
 Select Case objType.Range.Text 
 Case "Financial" 
 objCC.BuildingBlockType = wdTypeCustom1 
 objCC.BuildingBlockCategory = "Financial Disclaimers" 
 
 Case "Marketing" 
 objCC.BuildingBlockType = wdTypeCustom1 
 objCC.BuildingBlockCategory = "Marketing Disclaimers" 
 
 End Select 
 End If 
End Sub

См. также

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

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