Работа с элементами управления содержимым
Элементы управления контентом — это связанные и, возможно, помеченные фрагменты документа, выполняющие роль контейнеров для определенных типов содержимого. В отдельных элементах управления содержимым могут находиться такие элементы, как даты, списки или абзацы форматированного текста. В некоторых случаях элементы управления содержимым могут напоминать вам о формах. Однако они гораздо более мощные, гибкие и полезные, так как позволяют создавать полнофункционированные структурированные блоки содержимого. Элементы управления содержимым позволяют создавать шаблоны, которые вставляют в документы четко определенные блоки. Элементы управления содержимым позволяют:
- Укажите структурированные регионы в шаблоне. Каждый структурированный регион имеет собственный уникальный идентификатор, который позволяет считывать и записывать в него данные. Примерами типов структурированных областей (или элементов управления содержимым) являются поля со списком, рисунки, текстовые блоки и календари.
- Определите поведение элементов управления содержимым. Каждый элемент управления содержимым занимает часть документа и, как автор шаблона, можно указать, что делает каждый регион. Например, если вы хотите, чтобы область шаблона была календарем, в эту область документа вставляется элемент управления содержимым календаря, который автоматически определяет, что делает этот блок содержимого. Аналогичным образом, если вы хотите, чтобы в разделе шаблона отображалось изображение, создайте элемент управления содержимым рисунка в этой области. Таким образом можно создать шаблон со стандартными типами блоков.
- Ограничьте возможность изменения элементов управления содержимым в документе. Каждый элемент управления содержимым можно ограничить, чтобы его нельзя было удалить или изменить. Это полезно, если, например, у вас есть сведения об авторских правах в шаблоне, который пользователь должен иметь возможность читать, но не редактировать. Или, в качестве другого примера, можно также заблокировать элемент управления содержимым, помещенный в документ шаблона, чтобы пользователь случайно не удалил содержимое, содержащееся в элементе управления содержимым. Это делает шаблоны более надежными, чем в предыдущих версиях.
- Сопоставляйте содержимое элемента управления с данными в пользовательской 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 и обратная связь.
Элементы управления в MS Word 2010
В этой заметке мы с вами рассмотрим некоторые из наиболее полезных элементов управления и возможные области их применения.
Добраться до элементов управления можно перейдя на вкладку ленты «Разработчик» (рис. 1.).

Рисю 1. Меню «Элементы управления»
Здесь собраны самые распространенные и полезные инструменты :
- Вставка форматированного и простого текста;
- Вставка рисунка;
- Поле со списком (текст предложенных вариантов в поле можно редактировать);
- Раскрывающийся список (текст редактировать нельзя, можно выбрать только предложенные варианты);
- Выбор даты (календарь).
Все эти инструменты (ну или большую часть из них) можно использовать для создания быстро заполняемых бланков и форм – например, заявления на отпуск:
- Вставка текста – имя и фамилия заявителя;
- Раскрывающийся список – причина подачи заявления;
- Выбор даты – указание даты начала и конца отпуска.
Давайте разберем процесс настройки на примере элемента «Раскрывающийся список». После вставки элемента настроить его можно при помощи двух кнопок – «Режим конструктора» и «Свойства» (рис.2).

Рис. 2. Кнопки настройки элемента
Кнопка «Режим конструктора» позволяет управлять расположением элемента и его заголовком (рис.3).

Рис.3 Настройка элемента в режиме «конструктора»
Кнопка «Свойства» позволяет задать значения выпадающего списка, защиту от редактирования (рис. 4).

Рис. 4. Настройка свойств элемента
В итоге, после всех стараний, получаем готовый раскрывающийся список и возможность сэкономить немного времени при заполнении документов (рис. 5).

Рис. 5. Настроенный элемент «Раскрывающийся список»
Настройка остальных типов элементов примерно похожа – с этим вы без затруднений разберетесь самостоятельно. Удачи!
Прочтите также:
- Нумерация с произвольной страницы в Microsoft Word 2010
- Вставка текущих даты и времени в Word и Excel
- Вставка текущей даты в документ Word 2007
- Создание и обновление оглавления в Microsoft Word 2010
Элементы управления содержимым в Word
Узнайте, как элементы управления содержимым в Microsoft Word 2013 расширяют возможности работы со структурированными документами.
В этой статье представлены сведения об изменениях элементов управления содержимым в Microsoft Word 2013 и сценариях работы с документами, которые становятся доступны в результате этих изменений.
Структурированные документы
Структурированные документы контролируют, в каком месте документа может отображаться содержимое, какие типы контента могут отображаться в документе и можно ли редактировать содержимое.
Ниже приведены некоторые распространенные сценарии для структурированного содержимого Microsoft Word.
- Адвокатской конторе нужно создать документы с юридическими формулировками, которые пользователь не должен менять.
- Организации нужно создать титульную страницу предложения, где пользователь вводит только заголовок, автора и дату.
- Организации нужно создать накладные, где в заранее определенных областях указываются данные о клиентах.
Создание структуры документа с помощью элементов управления содержимым
Элементы управления содержимым — это объекты Microsoft Word, действующие в качестве контейнеров для определенного содержимого документа. В отдельных элементах управления содержимым могут находиться такие элементы, как даты, списки или абзацы форматированного текста. Элементы управления содержимым помогают создавать форматированные, структурированные блоки содержимого и рассчитаны на использование в шаблонах, вставляющих конкретные блоки в документы, образуя структурированные документы.
Элементы управления содержимым идеально подходят для создания структурированных документов, ведь они помогают фиксировать расположение содержимого, задавать его тип (например, дату, рисунок или текст), ограничивать или разрешать редактирование, а также придавать содержимому семантическое значение.
Элементы управления содержимым в Word 2010
В Word 2010 доступны следующие элементы управления содержимым:
- форматированный текст;
- обычный текст;
- рисунок;
- коллекция стандартных блоков;
- поле со списком;
- раскрывающийся список;
- дата;
- флажок;
- группа.
Элементы управления содержимым в Word 2010 предоставляют различные возможности для создания структурированных документов, но в Word 2013 они делают возможными еще больше сценариев.
Улучшения элементов управления содержимым в Word 2013
Элементы управления содержимым в Word 2013 включают три основных усовершенствования: улучшенную визуализацию, поддержку сопоставления XML для элементов управления содержимым «Форматированный текст», а также новый элемент управления содержимым для повторяющегося контента.
Улучшенные возможности визуализации
Word 2013 позволяет отображать отдельные элементы управления содержимым в одном из трех возможных состояний:
- в виде ограничивающего прямоугольника;
- в виде открывающего и закрывающего тегов;
- невидимым.
Если не указано иное, в этом разделе обсуждается визуализация элементов управления содержимым при просмотре документа не в режиме конструктора. Задать режим отображения для элемента управления содержимым можно с помощью раскрывающегося списка Показать как в диалоговом окне Свойства элемента управления содержимым.
Рис. 1. Диалоговое окно «Свойства элемента управления содержимым»

«
Вы также можете задать режим отображения для элемента управления содержимым с помощью объектной модели Word 2013 (рассматриваемой ниже в разделе Новые элементы объектной модели для элементов управления содержимым Word 2013).
Ограничивающий прямоугольник
По умолчанию элементы управления содержимым в Word 2013 отображаются так же, как в Word 2007 и Word 2010, то есть в виде ограничивающего прямоугольника. Если элемент управления содержимым отображается как ограничивающий прямоугольник, то режим отображения меняется в соответствии с действиями пользователя.
- Если элемент не находится в фокусе, то он не визуализируется.
- Если навести указатель мыши на элемент, он появится в виде затененного прямоугольника.
Рис. 2. Управление содержимым при наведении указателя мыши

- Если элемент управления содержимым находится в фокусе (когда пользователь выбирает его), он отображается как «ограничивающий прямоугольник» (с линией вокруг содержимого и заголовком, если он задан).
Рис. 3. Элемент управления содержимым в фокусе

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

Нет
Если выбран вариант Нет, то элемент управления содержимым не отображается.
Окраска элемента управления содержимым
Помимо различных вариантов отображения, в Word 2013 также можно выбирать цвета отдельных элементов управления содержимым. Вы можете задать цвет элемента управления содержимым с помощью кнопки Цвет в диалоговом окне Свойства элемента управления содержимым.
Вы также можете задать цвет элемента управления содержимым с помощью объектной модели Word 2013 (рассматриваемой ниже в разделе Новые элементы объектной модели для элементов управления содержимым Word 2013).
Рис. 5. Диалоговое окно «Свойства элемента управления содержимым»

«
Поддержка сопоставления XML для элементов управления содержимым «Форматированный текст»
Word 2013 помогает сопоставлять содержимое элементов управления содержимым «Форматированный текст» и «Стандартный блок документа» с хранилищем данных XML. Для этого необходимо задать сопоставление XML для элемента управления содержимым. Вы можете задать это свойство с помощью имеющегося метода XMLMapping.SetMapping объектной модели. В пользовательской XML-части код XML хранится в виде плоской разметки Open XML, преобразованной в строку (с помощью стандартной кодировки XML), чтобы ее можно было сохранить в виде текстового узла в пользовательской XML-части. Однако сопоставление по-прежнему ограничено: успешно выполнить сопоставление можно только с листовыми узлами или атрибутами.
Элементы управления содержимым «Форматированный текст» не могут содержать другие элементы этого типа. Если один элемент управления содержимым находится внутри другого (например, по причине манипуляций с форматами файлов, копирования и вставки и т. д.), то он остается несвязанным, пока он находится внутри сопоставленного элемента управления содержимым «Форматированный текст».
Дополнительные сведения о том, как настраивать сопоставление XML, см. в разделе Новые элементы объектной модели для элементов управления содержимым Word 2013 далее в этой статье.
Поддержка повторяющегося содержимого
Помимо улучшений визуализации и поддержки сопоставления XML с элементами управления содержимым «Форматированный текст», в Word 2013 также добавлен новый элемент управления содержимым, позволяющий повторять содержимое. Элемент управления содержимым «Повторяющийся раздел» повторяет включенное в него содержимое, в том числе другие элементы управления содержимым.
Элемент управления содержимым «Повторяющийся раздел» вставляется вокруг целых абзацев или строк таблиц. Если элемент управления содержимым окружает раздел, вы можете вставить копии этого раздела над включенным в него разделом или под ним.
Рисунок 6. Контекстное меню элемента управления содержимым «Повторяющийся раздел»

«

Вы можете повторить вставленный раздел, используя элемент управления в конце элемента управления содержимым (отображается в виде кнопки со знаком «плюс» ()) или выбрав команду в контекстном меню, как показано на рис. 6. Повторяющееся содержимое становится отдельным разделом элемента управления, которому можно назначить название с помощью диалогового окна Свойства элемента управления содержимым.
Рис. 7. Назначение заголовка раздела в диалоговом окне Свойства элемента управления содержимым

«
Когда разделу будет назначено название, пользователи смогут добавлять и удалять его по имени, выбирая параметр Разрешить пользователям добавлять и удалять разделы в диалоговом окне Свойства элемента управления содержимым.
Рис. 8. Удаление раздела с помощью контекстного меню элемента управления содержимым «Повторяющийся раздел»

» «
Если элемент управления содержимым «Повторяющийся раздел» окружает другие элементы управления содержимым, то вложенные в него элементы повторяются в каждом новом экземпляре. Однако в качестве содержимого этих элементов управления используется замещающий текст. Существует два исключения, когда дочерние элементы управления содержимым остаются без изменений:
- если дочерний элемент управления является повторяющимся разделом;
- если дочерний элемент управления сопоставлен при помощи XML с узлом за пределами элемента управления содержимым «Повторяющийся раздел».
Рис 9. Элемент управления содержимым «Повторяющийся раздел», содержащий дочерние элементы управления перед повтором

Рис. 10. Элемент управления содержимым повторяющегося раздела, содержащий дочерние элементы управления после повторения

Элементы управления содержимым «Повторяющийся раздел» вокруг сопоставленных при помощи XML элементов управления
Ниже описано, как Word 2013 работает с сопоставлениями XML, содержащимися в повторяющемся разделе.
Если сопоставление не пересекается с элементом в узле, заданном в рамках родительской цепочки, то привязка является абсолютной и отображает одно и то же содержимое во всех элементах повторяющихся разделов.
Если сопоставление пересекается с элементом в узле, заданном в рамках родительской цепочки, то привязка является относительной и переназначается описанным ниже образом.
- Определяется абсолютная привязка к узлу (со сведением всех выражений запросов). Это должно произойти при первоначальном сопоставлении.
- Ось привязки, пересекающаяся с набором узлов, удаляется.
- Оставшаяся часть значения XPath оценивается относительно свойства XPath элемента содержимого повторяющегося раздела.
Например, могут быть созданы описанные ниже сопоставления.
- Повторяющийся раздел сопоставляется с путем \root\next\path.
- Элемент управления в примере элемента сопоставляется с путем \root\next\path[2]\baz.
- Word сопоставляет путь \root\next\path[2] с элементом в наборе узлов.
Следовательно, привязка оценивается как .\baz, где основанием является узел элемента повторяющегося содержимого.
Приведенные ниже рекомендации по работе с элементам управления повторяющимся содержимым помогут вам предотвратить потерю данных и избежать неудобств.
Работа с элементами управления содержимым «Повторяющийся раздел», которые сопоставлены с данными XML
Если в документ вставлен элемент управления содержимым «Повторяющийся раздел», сопоставленный с данными XML, то каждый раз, когда пользователь повторно открывает документ, Word воссоздает элементы повторяющихся разделов в соответствии со сведениями из хранилища данных. Даже если сохранить документ, все изменения, внесенные пользователям в элементы повторяющихся разделов документа, которые не сопоставлены с хранилищем данных, будут потеряны.
Чтобы предотвратить это, заблокируйте элемент управления содержимым «Повторяющийся раздел» и разрешите пользователю редактировать только разблокированные дочерние элементы управления содержимым, которые также сопоставлены с XML.
Привязка элемента управления содержимым «Повторяющийся раздел» к таблице
Если вы хотите привязать элемент управления содержимым повторяющегося раздела к таблице, вставьте таблицу, а затем вставьте элемент управления содержимым повторяющегося раздела, а не наоборот. В противном случае выбрать таблицу отдельно будет невозможно.
Вложение элементов управления содержимым «Повторяющийся раздел» в таблице
Тесная вложенность элементов управления содержимым «Повторяющийся раздел» в таблице (например, если окончания родительского и дочернего элементов находятся в одной ячейке) приводит к удалению внешнего повторяющегося раздела при добавлении или удалении элемента внутреннего раздела.
Это можно предотвратить, добавив маркер абзаца между окончаниями элементов управления содержимым «Повторяющийся раздел». Чтобы скрыть маркер абзаца, отмените выбор параметра Показать или скрыть на вкладке Главная ленты.
Дополнения схемы формата файлов Open XML
В схему WordprocessingML формата файлов Open XML были добавлены перечисленные ниже элементы.
Таблица 1. Новые элементы в схеме формата open XML WordprocessingML для элементов управления содержимым
| Элемент | Описание |
|---|---|
| Элемент является дочерним для элемента . Поддерживаемые значения атрибута val: | |
| Элемент является дочерним для элемента . Модель содержимого соответствует имеющемуся сложному типу CT_Color. Значение по умолчанию — цвет, используемый в Word 2010. |
Новые элементы объектной модели для элементов управления содержимым Word 2013
В рамках новых улучшений и дополнений для элементов управления содержимым в Word 2013 была обновлена объектная модель для Word. Теперь разрешаются программные манипуляции с новым набором компонентов. Кроме того, были внесены изменения в базовый формат файлов Open XML для текстовых документов.
В последующих разделах представлены дополнительные сведения о конкретных изменениях объектной модели, связанных с каждым улучшением элементов управления содержимым.
Улучшения визуализации
В Word 2013 включен ряд дополнений объектной модели, чтобы улучшить визуализацию элементов управления содержимым. В приведенной ниже таблице перечислены новые элементы объекта ContentControl для визуализации.
Табл. 2. Новые члены объекта ContentControl
| Элемент | Описание |
|---|---|
| . Appearance типа WdContentControlAppearance | Возвращает или задает вариант визуализации элемента управления содержимым. |
| . Color типа WdColor | Возвращает или задает цвет элемента управления содержимым. |
В приведенной ниже таблице перечислены константы из нового перечисления WdContentControlAppearance.
Табл. 3. Новые константы перечисления WdContentControlAppearance
| Константа | Описание |
|---|---|
| wdContentControlBoundingBox | Представляет элемент управления содержимым, отображаемый в виде затененного или ограничивающего прямоугольника (с необязательным заголовком). |
| wdContentControlTags | Представляет элемент управления содержимым, отображаемый в виде маркеров начала и конца. |
| wdContentControlHidden | Представляет элемент управления содержимым, который не отображается. |
Пример кода
В приведенном ниже примере кода показано, как создавать элементы управления содержимым «Форматированный текст» и задавать способ визуализации программным образом.
Sub testVisualization() Dim objcc As ContentControl Dim objRange As Range ' Get the first paragraph as a range object. Set objRange = ActiveDocument.Paragraphs(1).Range ' Create a rich text content control around the first paragraph. Set objcc = ActiveDocument.ContentControls.Add(wdContentControlRichText, objRange) objcc.Title = "Default Bounding Box" ' Set visualization to the default. objcc.Appearance = wdContentControlBoundingBox ' Create a new paragraph. objRange.InsertParagraphAfter Set objRange = ActiveDocument.Paragraphs(2).Range ' Create a rich text content control around the second paragraph. Set objcc = ActiveDocument.ContentControls.Add(wdContentControlRichText, objRange) objcc.Title = "Non Bounding" ' Set visualization to invisible. objcc.Appearance = wdContentControlHidden ' Create a new paragraph. objRange.InsertParagraphAfter Set objRange = ActiveDocument.Paragraphs(3).Range ' Create a rich text content control around the third paragraph. Set objcc = ActiveDocument.ContentControls.Add(wdContentControlRichText, objRange) objcc.Title = "Tags Only with Pink color" ' Set visualization to Start/End tags with pink color. objcc.Appearance = wdContentControlTags objcc.Color = wdColorPink End Sub
Сопоставление XML
В объектную модель Word 2013 не были внесены никакие изменения для поддержки сопоставления форматированного текста с узлами XML в хранилище данных документа. Вместо этого используйте имеющуюся объектную модель, чтобы сопоставить элемент управления содержимым «Форматированный текст» с узлом XML в хранилище данных документа. Кроме того, в базовую схему WordprocessingML формата файлов Open XML в рамках недавно добавленной поддержки элементов управления содержимым «Форматированный текст» не были внесены никакие изменения специально для сопоставления XML.
Пример кода
В приведенном ниже примере кода показано, как программным способом сопоставить элемент управления содержимым «Форматированный текст» с узлом XML.
Sub testRichBinding() Dim objRange As Range Dim objcc As ContentControl Dim objCustomPart As CustomXMLPart Dim blnMap As Boolean ' Add a custom XML part to the data store. Set objCustomPart = ActiveDocument.CustomXMLParts.Add ' Load XML fragment into the custom XML part. objCustomPart.LoadXML ("Rich Text Databinding ") ' Get the first paragraph as a range object. Set objRange = ActiveDocument.Paragraphs(1).Range ' Create a rich text content control around the first paragraph. Set objcc = ActiveDocument.ContentControls.Add(wdContentControlRichText, objRange) ' Bind the XML node to the rich text content control. blnMap = objcc.XMLMapping.SetMapping("/x") ' Return whether mapping worked. MsgBox objcc.XMLMapping.IsMapped End Sub
Элементы управления содержимым «Повторяющийся раздел», представленные в объектной модели
Элемент управления содержимым «Повторяющийся раздел» доступен в объектной модели с использованием перечисленных ниже дополнений к объекту ContentControl и новым объектам RepeatingSectionItem и RepeatingSectionItemColl. В таблице 4 перечислены наиболее важные из новых элементов объекта ContentControl для элементов управления содержимым «Повторяющийся раздел».
Табл. 4. Элементы объекта ContentControl
| Элемент | Описание |
|---|---|
| AllowInsertDeleteSection типа Boolean | Возвращает или задает значение, указывающее, могут ли пользователи добавлять или удалять разделы из элемента управления содержимым с помощью пользовательского интерфейса. Если это свойство вызывается для элемента управления содержимым, не являющегося повторяющимся разделом, то вызов завершается ошибкой со следующим сообщением: «Это свойство можно использовать только с элементами управления содержимым «Повторяющийся раздел»». |
| RepeatingSectionItemTitle типа String | Возвращает или задает имена элементов повторяющихся разделов, используемых в контекстном меню. Если это свойство вызывается для элемента управления содержимым, не являющегося повторяющимся разделом, то вызов завершается со следующей ошибкой: «Это свойство можно использовать только с элементами управления содержимым «Повторяющийся раздел»». |
| InsertRepeatingSectionItemBefore типа ContentControl | Добавляет элемент повторяющегося раздела перед текущим элементом и возвращает этот новый элемент. Если этот метод вызывается для элемента управления содержимым, не являющегося элементом повторяющегося раздела, то вызов завершается со следующей ошибкой: «Это свойство можно использовать только с элементами управления содержимым «Элемент повторяющегося раздела»». |
| InsertRepeatingSectionItemAfter типа ContentControl | Добавляет элемент повторяющегося раздела после текущего элемента и возвращает этот новый элемент. Если этот метод вызывается для элемента управления содержимым, не являющегося элементом повторяющегося раздела, то вызов завершается со следующей ошибкой: «Это свойство можно использовать только с элементами управления содержимым «Элемент повторяющегося раздела»». |
В таблице 5 перечислены наиболее важные элементы объекта RepeatingSectionItem.
Табл. 5. Элементы объекта RepeatingSectionItem
| Элемент | Описание |
|---|---|
| Range типа Range | Возвращает диапазон указанного элемента повторяющегося раздела за исключением открывающего и закрывающего тегов. |
| Delete | Удаляет указанный элемент повторяющегося раздела. |
| InsertItemAfter типа RepeatingSectionItem | Добавляет элемент повторяющегося раздела после указанного элемента и возвращает новый элемент. |
| InsertItemBefore типа RepeatingSectionItem | Добавляет элемент повторяющегося раздела перед указанным элементом и возвращает новый элемент. |
В таблице 6 перечислены наиболее важные элементы объекта RepeatingSectionItemColl.
Табл. 6. Элементы объекта RepeatingSectionItemColl
| Элемент | Описание |
|---|---|
| Item типа RepeatingSectionItem | Возвращает отдельный элемент повторяющегося раздела. |
В таблице 7 показан новый элемент перечисления WdContentControlType для элементов управления содержимым «Повторяющийся раздел».
Табл. 7. Добавление перечисления WdContentControlType
| Константа | Описание |
|---|---|
| wdContentControlRepeatingSection | Представляет элемент управления содержимым, который содержит отдельный элемент из повторяющегося раздела. |
Пример кода
В приведенном ниже примере кода показано, как работать с элементами управления содержимым «Повторяющийся раздел» программным способом.
Sub testRepeatingSectionControl() Dim objRange As Range Dim objTable As Table Dim objCustomPart As CustomXMLPart Dim objCC As ContentControl Dim objCustomNode As CustomXMLNode Set objCustomPart = ActiveDocument.CustomXMLParts.Add objCustomPart.LoadXML ("" & _ "Everyday Italian " & _ "Giada De Laurentiis " & _ "Harry Potter " & _ "J K. Rowling " & _ "Learning XML " & _ "Erik T. Ray ") Set objRange = ActiveDocument.Paragraphs(1).Range Set objTable = ActiveDocument.Tables.Add(objRange, 2, 2) With objTable.Borders .InsideLineStyle = wdLineStyleSingle .OutsideLineStyle = wdLineStyleDouble End With Set objRange = objTable.Cell(1, 1).Range Set objCustomNode = objCustomPart.SelectSingleNode("/books[1]/book[1]/title[1]") Set objCC = ActiveDocument.ContentControls.Add(wdContentControlText, objRange) objCC.XMLMapping.SetMappingByNode objCustomNode Set objRange = objTable.Cell(1, 2).Range Set objCustomNode = objCustomPart.SelectSingleNode("/books[1]/book[1]/author[1]") Set objCC = ActiveDocument.ContentControls.Add(wdContentControlText, objRange) objCC.XMLMapping.SetMappingByNode objCustomNode Set objRange = objTable.Rows(1).Range Set objCC = ActiveDocument.ContentControls.Add(wdContentControlRepeatingSection, objRange) objCC.XMLMapping.SetMapping ("/books[1]/book") End Sub
Формат файлов Open XML для элементов управления содержимым «Повторяющийся раздел»
В представлении форматов файлов для элемента управления содержимым «Повторяющийся раздел» обычно используются те же имена элементов, значения и т. д., что и в имеющейся разметке XML. Однако элемент , представляющий внешний контейнер повторяющегося раздела, существует в пространстве имен Word 2013, чтобы обеспечить совместимость с более ранними версиями Word.
Отдельные повторяющиеся элементы в рамках элемента управления содержимым «Повторяющийся раздел» (окружающего каждый из этих элементов) сохраняются как элементы управления содержимым «Форматированный текст» с использованием имеющегося представления WordprocessingML. В таблице 8 перечислены новые элементы схемы WordprocessingML для элементов управления содержимым «Повторяющийся раздел».
Табл. 8. Новые элементы в схеме WordprocessingML для повторяющихся элементов управления содержимым раздела
| Элемент | Описание |
|---|---|
| Задает элемент управления содержимым «Повторяющийся раздел». Этот элемент и все остальные типы элементов управления являются взаимоисключающими. Он не содержит дочерних элементов и атрибутов. | |
| Задает элемент управления содержимым «Элемент повторяющегося раздела». Этот элемент и все остальные типы элементов управления являются взаимоисключающими. Он не содержит дочерних элементов и атрибутов. | |
| Указывает, что пользователь не может добавлять и удалять разделы с помощью пользовательского интерфейса Word 2013. | |
| Задает имена элементов повторяющихся разделов (и используется в контекстном меню при выборе элемента управления). |
Использование интерактивных элементов управления данными
Управление данными, отображаемыми объектами отчёта, выполняется с помощью элементов управления.
При добавлении в документ отчёта из репозитория с настроенными элементами управления, они будут отображены на панели « Элементы управления ».

При добавлении экспресс-отчёта, содержащего фиксированные измерения, в документ, в качестве элемента управления выступает заголовок. Для отображения/скрытия панели « Заголовок » используйте кнопку « Заголовок » на вкладке « Foresight » ленты инструментов. Заголовок отображается как гиперссылка, при нажатии на которую открывается иерархический список для выбора элемента фиксированного измерения. Изменения вступают в силу после обновления.
При добавлении объектов отчёта элемент управления настраивается на определенное измерение источника данных объекта. В результате, элемент управления отображает элементы выбранного измерения в виде раскрывающегося списка. Изменения в отметке элементов измерения влияют на данные, отображаемые объектом.
Для создания элемента управления используйте панель « Объекты отчета »:
- Убедитесь, что панель отображается.
- Выберите измерение объекта, для которого создается элемент управления.
- Выполните одно из действий:
-
- выполните команду контекстного меню « Создать элемент управления » для измерения;
- перетащите измерение на панель « Элементы управления », используя механизм Drag&Drop.
После выполнения последовательности действий будет создан элемент управления. Наименование и отметка элементов в созданном элементе управления совпадают с наименованием и отметкой элементов в управляемом измерении.
Для работы с элементами управления используйте панель « Элементы управления »:


Для отображения/скрытия панели используйте кнопку « Элементы управления », расположенной в группе « Вид » на вкладке « Foresight » ленты инструментов.
Примечание . Отображение панели недоступно, если в отчете отсутствуют объекты.
Операции, доступные с элементами управления:

Для поиска элементов измерения нажмите кнопку « Поиск ».
Для работы с отметкой элементов измерения используйте команды контекстного меню, описанные в разделе « Изменение отметки в справочниках ».
Один элемент управления может управлять отметкой в одинаковых измерениях в нескольких объектах отчета. Для этого настройте синхронизацию отметки измерений:
- Создайте элемент управления для требуемого измерения одного из объектов.
- В другом объекте выделите элемент, соответствующий данному измерению, и выполните команду « Значение из элемента управления » в контекстном меню. Будет отображен список всех доступных элементов управления, в котором укажите требуемый элемент.
В результате, созданный элемент управления влияет на отметку элементов в обоих блоках.
Для отвязки элемента от объекта управления:
- На странице выберите объект, который требуется отвязать от элемента управления.
- Выполните команду « Удалить элемент управления содержимым » в контекстном меню объекта.
Объект будет отвязан от всех элементов управления.
При изменении значения элемента управления данные в документе обновляются в соответствии с измененным значением.