1. Объектная модель Word
Приложение Word предназначено для создания документов, которые затем могут быть распечатаны или помещены на странице в Интернет. В приложении все вращается вокруг концепции документа, которым может быть все, что угодно — от 2-строчной записки, до 500-страничного многотомного отчета. Основными функциями приложения Word является ввод и редактирование текста, форматирование внешнего вида текста и его размещения на странице, помещение текста в колонки и таблицы. Также поддерживаются особые элементы, такие как верхние и нижние колонтитулы, номера страниц, индексы, и таблицы. Word также имеет встроенный словарь для проверки правописания и орфографии и тезаурус для нахождения синонимов. Если ваше приложение должно работать с текстом, вам следует, прежде всего, посмотреть на среду приложения Word.
Истории в документе
Каждый документ Word состоит из некоторого количества историй, которые представляют разные части документа: основной текст, первую страницу, заголовок, примечания и т.д. Каждая история представлена объектом Range, содержащим ее. Доступ к историям можно получить посредством коллекции sto-ryRanges, которая принадлежит объекту Document. В отличие от других коллекций, StoryRanges не имеет метода Add. Истории создаются автоматически и помещаются в коллекцию, когда в них появляется некоторое содержание. Однако главная текстовая история существует независимо от того, содержит она текст или нет. Для ссылок на разные истории служат следующие константы.
WdCommentsStory (комментарии);
WdEndNotesStory (примечания);
WdEvenPagesFooterStory (нижний колонтитул нечетных страниц);
WdEvenPagesHeaderStory (верхний колонтитул нечетных страниц);
WdFirstPageFooterStory (нижний колонтитул первой страницы); WdFirstPageHeaderStory (верхний колонтитул первой страницы); WdFootNotesStory (сноски); wdMainTextstory (основной текст);
WdPrimaryFooterStory (основные нижние колонтитулы); WdPrimaryHeaderStory (основные верхние колонтитулы); WdTextFrameStory (рамки).
Ссылку на конкретную историю можно получить следующим образом:
Dim StoryRange as Word.Range
Set StoryRange=MyDoc.StoryRanges (StoryType)
Здесь StoryType — одна из вышеперечисленных констант. Но если заданная история не присутствует в документе, возникает ошибка. Эту ошибку можно перехватить но все же во избежание этой потенциальной проблемы следует пройти в цикле по коллекции StoryRanges, чтобы проверить, существует ли данная история:
Dim StoryRange as Word.Range
Dim R As Word.Range
Dim StoryExists As Boolean
StoryExists=False
For Each R In MyDoc.StoryRanges
If R.StoryType=wdPrimaryHeaderStory Then Set StoryRange=R StoryExists=True
End If Next R If Not StoryExists Then
MsgBox (”The Primary Header Story does not exists.”) End If
А вот фрагмент программы, который добавляет текст “Compiled by R.Smith” в конец существующего текста в основных нижних колонтитулах:
Dim R As Word.Range
Dim S As String
For Each R In ActiveDocument.StoryRanges
If R.StoryType=wdPrimaryFooterStory Then
S=R.Text End If Next R
ActiveDocument.Selections (1).Footers _ (WdPrimaryFooterStory). _ Range.Text=S & “Compiled by R.Smith”