Основы офисного программирования и документы Word


Заголовки (CaptionLabels)


Коллекция объектов CaptionLabels (CaptionLabel) представляет заголовки, которые вставляются в документ одновременно со вставкой таблиц, рисунков, диаграмм и других подобных элементов документа. Следует отметить, что при вставке в документ каждого нового элемента определенного типа и его заголовка происходит автоматическая нумерация заголовков, (например, Рисунок 1, Рисунок 2 и т.д.).

В коллекцию разрешается добавлять новые заголовки и удалять существующие. При работе вручную следует выбрать в пункте Insert (Вставка) главного меню Word команду Caption (Название). В открывающемся диалоговом окне есть раскрывающийся список заголовков, из которого можно выбрать подходящий элемент и вставить его в документ. Кнопка New Label (Создать) позволяет добавить новый заголовок к уже имеющемуся списку. Кнопка Delete (Удалить) позволяет удалить заголовок. Вот как выглядит это окно:


Рис. 1.4.  Окно заголовков

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

Public Sub AddCaptions() 'Работа с коллекцией заголовков

Dim Item As CaptionLabel With CaptionLabels Debug.Print .Count 'Добавление трех заголовков .Add "Мой Рисунок" .Add "Диаграмма Excel" .Add "Мой Пример" Debug.Print .Count For Each Item In CaptionLabels Debug.Print Item .Name Next Item 'Удаление последнего заголовка .item(.Count).Delete

End With End Sub

Листинг 1.3.

(html, txt)

Вот результаты отладочной печати, появляющиеся в окне отладки (Immediate):

Листинг 1.4.

(html, txt)

Этот пример типичен для работы с коллекциями. Здесь добавляются и удаляются элементы коллекции, определяется их число, организуется цикл по всем элементам. Покажем теперь, как, используя эту коллекцию, можно программно вставлять в текст документа в нужном месте те или иные заголовки:

Public Sub InsertLabelInDoc() 'Вставка заголовка в текст документа 'Вставка заголовков With ActiveDocument .Paragraphs.Add .Paragraphs.Last.Range.Select Selection.InsertCaption Label:="Диаграмма Excel" .Paragraphs.Add .Paragraphs.Last.Range.Select Selection.InsertCaption Label:=CaptionLabels(CaptionLabels.Count) End With End Sub

Листинг 1.5.

(html, txt)

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

Листинг 1.6.

(html, txt)



Содержание раздела