Опубликован: 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
Виктор Стряпченко
Виктор Стряпченко
Беларусь, г.Мстиславль