- •10.1. Коллекция Documents - открытые документы
- •10.2. Методы коллекции Documents
- •10.2.2. Open - открываем документы
- •10.2.3. Close - закрываем все документы
- •10.2.4. Item - обращаемся к отдельным документам
- •10.5.3. ComputeStatistics - статистика документа
- •10.5.4. FitToPages - уменьшить размер текста на одну страницу
- •10.5.5. GoTo - перемещение по документу
- •10.5.12. UndoClear - очистить историю изменений Очищает историю изменений документа. После выполнения этого метода пользователь не смо10.6. Свойства объекта Document
- •10.6.1. Application - приложение документа
- •10.6.2. AttachedTemplate - присоединенный шаблон
- •10.6.3. Bookmarks - закладки
- •10.6.4. Characters, Words, Sentences, Paragraphs и другие
- •10.5.11. Select - выделяем содержимое документа
- •10.6.5. Content - "чистый" текст документа
- •10.6.6. Endnotes, Footnotes - сноски
- •10.6.7. FullName, Name, Path - пути и имена
- •10.6.8. Saved - сохранен или нет
- •10.6.9. Tables - работа с таблицами
- •10.6.10. Omaths - математические формулы
- •10.7. События объекта Document
10.6.5. Content - "чистый" текст документа
10-05-Content.docm - пример к п. 10.6.5.
Свойство документа Content возвращает объект Range - текст документа без сносок, колонтитулов и т.д.
В листинге 10.22 вы можете найти пример использования свойства Content для настройки шрифта документа.
Dim obj_C As Range
Set obj_C = ActiveDocument.Content
With obj_C.Font
.Name = "Arial"
.Size = 12
.Spacing = 1.5
End With
Листинг 10.22. Настраиваем шрифт текста документа (html, txt)
В этом коде мы объявили объектную переменную типа Range, связали с ней объект Range, возвращаемый свойством Contentактивного документа, после чего, воспользовавшись свойством Font объекта Range, установили гарнитуру ( Name ) шрифта Arial, размер ( Size ) - 12 пунктов и расстояние между символами в 1.5 пункта.
Чтобы записать текст документа в строковую переменную, можно воспользоваться кодом листинга 10.23.
Dim str_Text As String
str_Text = ActiveDocument.Content.Text
Листинг 10.23. Записываем текст документа в переменную (html, txt)
Cвойство Text объекта Range возвращает текст объекта. Записав текст в переменную, мы сможем работать с ней средствами VBA.
10.6.6. Endnotes, Footnotes - сноски
10-06-Сноски.docm - пример к п. 10.6.6.
Эти свойства возвращают, соответственно, коллекцию Endnotes и Footnotes. В коллекции Endnotes находятся объекты Endnote - то есть концевые ссылки - ссылки, которые расположены в конце документа. В коллекции Footnotes расположены объекты Footnote- обычные ссылки, которые расположены в конце страницы.
Давайте рассмотрим работу с этими объектами на примере Footnotes. Работа с Endnotes аналогична работе с Footnotes.
Добавить в документ новую ссылку можно с помощью метода Add коллекции Footnotes.
Полный вызов метода Add выглядит так:
ActiveDocument.Footnotes.Add(Range, Reference, Text)
Range - область текста, для которой вставляется сноска.
Reference - определяет символ сноски. По умолчанию используется автоматическая нумерация сносок.
Text - текст сноски.
В листинге 10.24. вы можете видеть код, добавляющий сноску для выделенного фрагмента текста (как правило, выделяют слово):
ActiveDocument.Footnotes.Add _
Range:=Selection.Range, _
Text:="Новая сноска!"
Листинг 10.24. Добавление сноски к выделенному фрагменту документа (html, txt)
Свойство Count коллекции Footnotes позволяет узнать количество ссылок в документе.
Чтобы обращаться к отдельным сноскам (объектам Footnote ), можно пользоваться либо их индексами в коллекции Footnotes, либо - оператором For Each - Next.
Свойство Range каждого объекта Footnote возвращает ссылку на объект Range, представляющий собой диапазон, который сноска занимает в документе. С помощью методов объекта можно настраивать различные параметры сноски.
Свойство Reference возвращает объект типа Range, который представляет собой область, занимаемую значком-ссылкой на сноску втеле документа.
В листинге 10.25 приведен пример форматирования сносок и ссылок на них.
Dim obj_D As Document
Dim obj_Footnote As Footnote
Set obj_D = ActiveDocument
'Форматируем сноски
For Each obj_Footnote In obj_D.Footnotes
obj_Footnote.Range.Font.Size = 11
Next
'Форматируем знаки-ссылки на сноски
For i = 1 To obj_D.Footnotes.Count
obj_D.Footnotes.Item(i).Reference _
.Font.Color = wdColorRed
Next i
Листинг 10.25. 10.25. Форматирование сносок и ссылок на них (html, txt)
Сначала мы, с помощью конструкции For-Each перебираем все сноски и устанавливаем размер шрифта для каждой из них равным 11 пунктов.
Далее, с помощью цикла For-Next мы обходим все ссылки на сноски в тексте и делаем цвет их шрифта красным.
Чтобы удалить сноску, можно воспользоваться методом Delete объекта Footnote.
Узнать номер сноски в коллекции Footnotes можно, используя свойство Index. Например, код листинга 10.26 позволяет вывести поочередно все сноски с их номерами в окне сообщения.
Dim obj_D As Document
Dim obj_Footnote As Footnote
Set obj_D = ActiveDocument
'Выводим информацию о сносках
For Each obj_Footnote In obj_D.Footnotes
MsgBox ("Номер сноски: " & obj_Footnote.Index & _
vbCrLf & "Текст сноски: " & obj_Footnote.Range.Text)
Next
Листинг 10.26. 10.26. Выводим все сноски и их номера (html, txt)
Константа vbCrLf заменяет собой знак перевода строки, в итоге при выполнении этого кода для каждой сноски будет выведено такое окно (рис. 10.2.).
Рис. 10.2. Информация о сноскахжет отменить изменения документа.
