- •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.2.3. Close - закрываем все документы
Метод Close используется для закрытия всех открытых документов. Применяют его достаточно редко - удобнее закрывать каждый конкретный документ по отдельности. При вызове метода без параметров система задаст вопрос о сохранении документов, которые были изменены (листинг 10.4.).
Documents.Close
Листинг 10.4. Закрываем все документы (html, txt)
Полный вызов метода выглядит так:
Documents.Close(SaveChanges, OriginalFormat, RouteDocument)
Среди параметров для нас наибольший интерес представляют первых два.
SaveChanges (Сохранить изменения) отвечает за сохранение изменений. По умолчанию он установлен в wdPromptToSaveChanges(Вывести запрос о сохранении), так же он может быть установлен в wdDoNotSaveChanges (Не сохранять изменения) и wdSaveChanges(Сохранить изменения). Как видите, с помощью параметра wdSaveChanges можно организовать удобное и быстрое закрытие множества документов с сохранением изменений
OriginalFormat (Формат) - отвечает за формат сохраняемого документа. Может принимать различные значения:wdOriginalDocumentFormat (Оригинальный формат документа), wdPromptUser (Запросить формат у пользователя), wdWordDocument(Документ Word).
Вот как выглядит вызов метода Close, который сохраняет все открытые документы и закрывает их (листинг 10.5.)
Documents.Close (wdSaveChanges)
Листинг 10.5. Закрываем все документы, предварительно сохранив (html, txt)
Учтите - если какие-то из документов сохраняются в первый раз - вы получите запрос об имени документа.
10.2.4. Item - обращаемся к отдельным документам
10-01-Item.docm - пример к п. 10.2.4.
Метод Item позволяет обращаться к открытым документам (то есть - к объектам Document ), используя их индексы или имена. Нумерация документов начинается с единицы. Чтобы узнать общее количество открытых документов, можно воспользоваться свойством Documents.Count.
Например, с помощью нижеприведенного кода из листинга 10.6 мы поочередно выводим имена открытых документов с указанием номера документа в коллекции:
For i = 1 To Documents.Count
MsgBox (Documents.Item(i).Name & _
" - документ номер " & i)
Next i
Листинг 10.6. Выводим имена и номера документов (html, txt)
Очевидно, что свойство Count коллекции Documents позволяет узнать количество открытых документов, а свойство Name объектаItem(i) содержит имя документа с индексом i.
На рис. 10.1 вы можете видеть одно из окон с сообщением об имени и номере документа.
Рис. 10.1. Окно сообщения об имени и номере документа
К документам в коллекции Documents можно обращаться и по именам. Также, при обращении к документу необязательно напрямую указывать метод Item - в листинге 10.7 вы можете видеть различные варианты обращения к документу.
MsgBox Documents("Мой документ.docx").Name
MsgBox Documents.Item("Мой документ.docx").Name
MsgBox Documents(1).Name
Листинг 10.7. Выводим имена и номера документов (html, txt)
10.2.5. Save - сохранение всех документов
Метод Save сохраняет все документы коллекции. Если документ сохраняется впервые - будет выведено окно с запросом имени файла. В листинге 10.8 приведен пример вызова метода.
Documents.Save
Листинг 10.8. Сохраним все документы в коллекции (html, txt)
10.3. Свойства коллекции Documents
Среди свойств коллекции Documents нас будет интересовать лишь одно - Count. Это свойство позволяет узнать количество элементов в коллекции Documents, то есть - количество открытых документов. В листинге 10.9 мы выводим в окне сообщения количество открытых документов
MsgBox ("Количество открытых документов: " & _
Documents.Count)
Листинг 10.9. Сохраним все открытые документы (html, txt)
10.4. Объект Document
Объект Document - это открытый документ. У него есть множество свойств и методов, которые активно используются при программной работе с документами. Здесь мы рассмотрим важнейшие из них.
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. Активируем первый из открытых документов (html, txt)
10.5.2. Close - закрыть документ
Метод Close закрывает документ. Например, код из листинга 10.11 позволяет закрыть документ, из которого он запущен.
ThisDocument.Close
Листинг 10.11. Закрываем документ, из которого запущен макрос (html, txt)
Метод можно вызывать с параметрами. В частности, полезен параметр SaveChanges, предназначенный для настройки автоматического сохранения документа. Если присвоить ему значение wdSaveChanges - документ будет сохранен при закрытии. Например, код из листинга 10.12 по очереди закрывает каждый из открытых документов.
Dim obj_Doc As Document
For Each obj_Doc In Documents
obj_Doc.Close SaveChanges:=wdSaveChanges
Next
Листинг 10.12. Закрываем каждый из открытых документов (html, txt)
При закрытии документов, которые были открыты и изменены, система выведет запрос о сохранении изменений.
