Фильтрация списка стандартных блоков в элементе управления содержимым
При использовании элементов управления содержимым вместе со стандартными блоками вы можете помочь пользователям, указав, какое содержимое они могут вставлять, и ограничить их выбор. Это можно сделать, отфильтровав список стандартных блоков, отображаемых для элемента управления содержимым. Чтобы отфильтровать список стандартных блоков для элемента управления содержимым, используйте свойство 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 и обратная связь.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по