Опубликован: 25.03.2009 | Уровень: для всех | Доступ: свободно
Лекция 10:

Работа с документами

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >

10.5. Методы объекта Document

10.5.1. Activate - сделаем документ активным

Позволяет сделать документ активным. Например, это может понадобиться для редактирования документа.

Например, код из листинга 10.10 активирует первый документ среди открытых документов.

Dim obj_Doc As Document
Set obj_Doc = Documents.Item(1)
obj_Doc.Activate
Листинг 10.10. Активируем первый из открытых документов

10.5.2. Close - закрыть документ

Метод Close закрывает документ. Например, код из листинга 10.11 позволяет закрыть документ, из которого он запущен.

ThisDocument.Close
Листинг 10.11. Закрываем документ, из которого запущен макрос

Метод можно вызывать с параметрами. В частности, полезен параметр SaveChanges, предназначенный для настройки автоматического сохранения документа. Если присвоить ему значение wdSaveChanges - документ будет сохранен при закрытии. Например, код из листинга 10.12 по очереди закрывает каждый из открытых документов.

Dim obj_Doc As Document
For Each obj_Doc In Documents
    obj_Doc.Close SaveChanges:=wdSaveChanges
Next
Листинг 10.12. Закрываем каждый из открытых документов

При закрытии документов, которые были открыты и изменены, система выведет запрос о сохранении изменений.

10.5.3. ComputeStatistics - статистика документа

10-02-Статистика документа.docm - пример к п. 10.5.3

Полезный метод, позволяющий получать различные статистические сведения о документе. Полный вызов выглядит так:

ComputeStatistics(Statistic, IncludeFootnotesAndEndnotes)

Параметр Statistic позволяет задавать тип получаемой статистики. Он может принимать значения типа wdStatistic - константы, описание которых приведено ниже:

  • wdStatisticCharacters -количество символов без пробелов
  • wdStatisticCharactersWithSliaces - количество символов, включая пробелы
  • wdStatisticLines - количество строк
  • wdStatisticPages - количество страниц
  • wdStatisticParagraphs - количество абзацев
  • wdStatisticWords - количество слов

Параметр IncludeFootnotesAndEndnotes позволяет указать, учитывать ли при подсчете статистики сноски. Установленный в значение True, включает сноски в подсчет статистики, в False - исключает.

Чтобы подсчитать и вывести количество символов в документе без учета пробелов и с учетом сносок, нам понадобится код, приведенный в листинге 10.13.

Dim num_Stat
    num_Stat = ActiveDocument.ComputeStatistics _
    (wdStatisticCharacters, True)
    MsgBox ("В документе " + Str(num_Stat) + _
    " символов без пробелов, включая сноски")
Листинг 10.13. Подсчет статистики документа

10.5.4. FitToPages - уменьшить размер текста на одну страницу

Этот метод уменьшает размер документа на одну страницу - его удобно использовать, чтобы избавиться от страницы документа, на которой есть лишь несколько строчек.

10.5.5. GoTo - перемещение по документу

10-03-GoTo.docm - пример к п. 10.5.5.

Метод GoTo позволяет перемещаться по документу, "передвигать" позицию редактирования. Метод возвращает объект Range, который представляет собой место документа, на которое должен быть осуществлен переход. Его полный вызов выглядит так:

GoTo(What, Which, Count, Name)

What - тип части документа, на которую осуществляется переход. Например, среди них есть такие элементы:

  • wdGoToBookmark - закладка (пожалуй, наиболее полезный элемент)
  • wdGoToHeading - заголовок
  • wdGoToLine - строка
  • wdGoToObject - объект
  • wdGoToPage - страница

Which - направление перемещения.

  • wdGoToAbsolute - перемещение в абсолютных единицах измерения
  • wdGoToFirst - перемещение к первому элементу
  • wdGoToLast -перемещение к последнему элементу
  • wdGoToNext - переход на следующий элемент
  • wdGoToPrevious - переход на предыдущий элемент
  • wdGoToRelative - перемещение относительно текущего элемента

Count - номер элемента в документе. Этот параметр часто опускают, так как переход осуществляется с использованием других установок, в частности - параметра Which.

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

С помощью листинга 10.14. мы можем перейти к первому заголовку в файле и добавить в его начало слово "Глава"

Dim obj_Range As Range
Set obj_Range = Application.Documents. _
Item(1).GoTo(wdGoToHeading, wdGoToFirst)
obj_Range.Text = "Глава " + obj_Range.Text
Листинг 10.14. Переходы в пределах документа

10.5.6. Range - область документа

Возвращает объект Range, заданный позицией начального и конечного символа. Подробнее о нем мы поговорим в соответствующей лекции.

10.5.7. Redo, Undo - отмена изменений

Эти методы позволяют отменить последнее изменение ( Redo ) и вернуть отмененное изменение ( Undo ).

10.5.8. RemoveDocumentInformation - удаляем персональную информацию из документа

Позволяет удалить из документа различную персональную информацию. Например - данные о создателе документа и т.д. Метод может принимать параметр, который определяет, что именно следует удалять. На практике самым полезным является параметр wdRDIAll, который удаляет из документа все, что возможно .

10.5.9. Save - сохранение файлов

Сохраняет документ. Обычно применяют без параметров, хотя полезен может быть параметр NoPrompt. Установленный в True, предписывает MS Word сохранять файл без дополнительных вопросов пользователю.

Обычно для сохранения файлов с определенными параметрами используют метод SaveAs.

10.5.10. SaveAs - тонкое управление сохранением

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

FileName - задает имя файла

FileFormat - формат файла. Здесь могут быть использованы значения из перечисления wdSaveFormat. В частности, для сохранения документа в формате по умолчанию (.docx) надо использовать wdFormatDocumentDefault. Для сохранения документа в формате Word 97 - wdFormatDocument97, для получения HTML-файла - wdFormatHTML.

10.5.11. Select - выделяем содержимое документа

Выделяет все содержимое документа. После этого с документом можно работать, используя средства объекта Selection.

10.5.12. UndoClear - очистить историю изменений

Очищает историю изменений документа. После выполнения этого метода пользователь не сможет отменить изменения документа.

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >
Евгений Ушаков
Евгений Ушаков
О стоимости курса
Александр Новиков
Александр Новиков
Справочник по объектам VBA
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Михаил Алексеев
Михаил Алексеев
Россия, Уфа, УГАТУ, 2002