Работа с элементами управления содержимым

Что такое элементы управления содержимым?

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

  • Укажите структурированные регионы в шаблоне. Каждый структурированный регион имеет собственный уникальный идентификатор, который позволяет считывать и записывать в него данные. Примерами типов структурированных областей (или элементов управления содержимым) являются поля со списком, рисунки, текстовые блоки и календари.

  • Определите поведение элементов управления содержимым. Каждый элемент управления содержимым занимает часть документа и, как автор шаблона, можно указать, что делает каждый регион. Например, если вы хотите, чтобы область шаблона была календарем, в эту область документа вставляется элемент управления содержимым календаря, который автоматически определяет, что делает этот блок содержимого. Аналогичным образом, если вы хотите, чтобы в разделе шаблона отображалось изображение, создайте элемент управления содержимым рисунка в этой области. Таким образом можно создать шаблон со стандартными типами блоков.

  • Ограничьте возможность изменения элементов управления содержимым в документе. Каждый элемент управления содержимым можно ограничить, чтобы его нельзя было удалить или изменить. Это полезно, если, например, у вас есть сведения об авторских правах в шаблоне, который пользователь должен иметь возможность читать, но не редактировать. Или, в качестве другого примера, можно также заблокировать элемент управления содержимым, помещенный в документ шаблона, чтобы пользователь случайно не удалил содержимое, содержащееся в элементе управления содержимым. Это делает шаблоны более надежными, чем в предыдущих версиях.

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

Самый простой способ создать элемент управления содержимым — использовать пользовательский интерфейс (хотя их также можно создать программным способом). Чтобы создать элемент управления содержимым с помощью пользовательского интерфейса, выберите содержимое, которое нужно преобразовать в элемент управления содержимым (например, текст или рисунок), а затем выберите нужный тип элемента управления содержимым в разделе элементов управления содержимым на ленте разработчика. При этом создается элемент управления содержимым вокруг выбранного содержимого.

Элементы управления содержимым в объектной модели Word

В следующей таблице показаны объекты в объектной модели Word, связанные с элементами управления содержимым.

Имя Описание
ContentControl Каждый объект ContentControl представляет отдельный элемент управления содержимым в документе. Используйте коллекцию ContentControls для доступа к отдельным объектам ContentControl .
ContentControls Используйте свойства ContentControls объектов Document, Range и Selection для доступа к коллекции элементов управления содержимым. Вы также можете использовать метод SelectContentControlsByTitle и метод SelectContentControlsByTag объекта Document для доступа к коллекции ContentControls , включающей определенные элементы управления содержимым, которые имеют одинаковый заголовок или значение тега.
ContentControlListEntry Если элемент управления содержимым является раскрывающимся списком или полем со списком, объект ContentControlListEntry представляет отдельные элементы в списке.
ContentControlListEntries Используйте свойство DropdownListEntries объекта ContentControl для доступа ко всем элементам в отдельном раскрывающемся списке или поле со списком.

Каждый из этих объектов или коллекций имеет методы и свойства, которые позволяют работать с элементами управления содержимым как по отдельности, так и в виде коллекции. Поскольку существуют различные типы элементов управления содержимым (см. следующий раздел "Типы элементов управления содержимым"), объект ContentControl содержит элементы, которые могут не применяться ко всем различным типам элементов управления содержимым. В следующей таблице показаны свойства и методы объекта ContentControl , которые применяются только к определенным типам элементов управления содержимым.

Примечание.

Полный список всех свойств и методов объекта ContentControl см. в разделе Элементы управления содержимым.

Свойство или метод Группа ресурсов
Свойство BuildingBlockCategory Элементы управления содержимым коллекции BuildingBlock (wdContentControlBuildingBlockGallery)
Свойство BuildingBlockType Элементы управления содержимым коллекции BuildingBlock (wdContentControlBuildingBlockGallery)
Свойство DateDisplayFormat Элементы управления содержимым даты (wdContentControlDate)
Свойство DateDisplayLocale Элементы управления содержимым даты (wdContentControlDate)
Свойство DateStorageFormat Элементы управления содержимым даты (wdContentControlDate)
Свойство DropdownListEntries Элементы управления содержимым со списком и раскрывающимся списком (wdContentControlComboBox и wdContentControlDropdownList)
Свойство MultiLine Элементы управления с содержимым в виде обычного текста (wdContentControlText)
Разгруппировать метод Элементы управления содержимым группы (wdContentControlGroup)
Метод SetCheckedSymbol Элемент управления содержимым Check Box (wdContentControlCheckBox)
Метод SetUncheckedSymbol Элемент управления содержимым Check Box (wdContentControlCheckBox)

Типы элементов управления содержимым

Существует восемь различных типов элементов управления содержимым, которые можно добавить в документ, каждый из которых представлен в новом перечислении с именем WdContentControlType.

Тип элемента управления содержимым Description Константа WdContentControlType
Флажок. wdContentControlCheckBox
Календарь Средство выбора даты и времени. wdContentControlDate
Стандартный блок Позволяет пользователю выбрать один из указанных стандартных блоков. wdContentControlBuildingBlockGallery
раскрывающийся список; Раскрывающийся список. wdContentControlDropDownList
Группа Определяет защищенную область документа, которую пользователи не могут изменять или удалять. Элемент управления group может содержать любые элементы документа, такие как текст, таблицы, графика и другие элементы управления содержимым. wdContentControlGroup
поле со списком; Поле со списком. wdContentControlComboBox
рисунок; Рисунок. wdContentControlBlockPicture
форматированный текст; Блок форматированного текста. wdContentControlRichText
обычный текст; Блок обычного текста. wdContentControlText

События элемента управления содержимым

Помимо свойств и методов, доступных в объектной модели элемента управления содержимым в Word, можно также использовать несколько событий, которые позволяют выполнять код при добавлении или удалении элемента управления содержимым или при изменении элемента управления содержимым пользователем. В следующем списке описано каждое из событий и время выполнения кода события. Все эти события являются членами объекта Document .

Имя события Description
ContentControlAfterAdd Происходит после добавления нового элемента управления содержимым в документ. Это событие выполняется независимо от того, добавляет ли пользователь элемент управления содержимым с помощью инструментов в пользовательском интерфейсе или добавляет его с помощью кода.
ContentControlBeforeContentUpdate Происходит до того, как Word обновит содержимое в элементе управления содержимым.
ContentControlBeforeDelete Происходит до удаления пользователем элемента управления содержимым. Это событие выполняется независимо от того, удаляет ли пользователь элемент управления содержимым с помощью средств в пользовательском интерфейсе или удаляет его с помощью кода.
ContentControlBeforeStoreUpdate Происходит до того, как Word обновляет содержимое элемента управления содержимым из данных в хранилище данных документа.
ContentControlOnEnter Возникает при вводе пользователем данных в элемент управления контентом.
ContentControlOnExit Происходит при выходе пользователя из элемента управления содержимым.

Работа с кодом

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

Добавление элемента управления содержимым

Как упоминалось ранее, существует восемь различных типов элементов управления содержимым, которые можно добавить в документы. Используйте метод Add коллекции ContentControls , чтобы добавить элемент управления содержимым в документ. В следующем примере к активному документу добавляется средство выбора даты и устанавливается значение даты, равное текущей дате.

Sub AddDatePicker() 
 
    Dim objCC As ContentControl 
    Dim objDate As Date 
 
    Set objCC = ActiveDocument.ContentControls _ 
        .Add(wdContentControlDate) 
    objDate = Date 
    objCC.Range.Text = objDate 
     
End Sub

Используйте одну и ту же базовую конструкцию, чтобы добавить в документ различные типы элементов управления содержимым.

Добавление заголовка в элемент управления содержимым

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

Sub SetTitleForContentControl() 
 
    Dim objCC As ContentControl 
     
    Set objCC = ActiveDocument.ContentControls _ 
        .Add(wdContentControlText) 
         
    objCC.Title = "Please enter your name" 
     
End Sub

Изменение замещающего текста в элементе управления содержимым

Замещающий текст — это временный текст. Это может быть простое или двухсловное описание (аналогично заголовку) или более подробное описание (например, нумерованные шаги). Изменение замещающего текста одинаково независимо от типа элемента управления содержимым или ожидаемого содержимого элемента управления содержимым. В следующем примере к активному документу добавляется раскрывающийся список, задается замещающий текст элемента управления, а затем он заполняется именами нескольких животных.

Sub SetPlaceholderText() 
 
    Dim objCC As ContentControl 
     
    Set objCC = Selection.ContentControls _ 
        .Add(wdContentControlComboBox) 
    objCC.Title = "Favorite Animal" 
    objCC.SetPlaceholderText _ 
        Text:="Please select your favorite animal " 
     
    'List entries 
    objCC.DropdownListEntries.Add "Cat" 
    objCC.DropdownListEntries.Add "Dog" 
    objCC.DropdownListEntries.Add "Horse" 
    objCC.DropdownListEntries.Add "Monkey" 
    objCC.DropdownListEntries.Add "Snake" 
    objCC.DropdownListEntries.Add "Other" 
 
End Sub

Это лишь несколько способов использования объектной модели для управления элементами управления содержимым в документах. Дополнительные примеры см. в разделе Практическое руководство .

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

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