Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с документами.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
244 Кб
Скачать
☆

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

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

10.5.12. UndoClear - очистить историю изменений Очищает историю изменений документа. После выполнения этого метода пользователь не смо10.6. Свойства объекта Document

10.6.1. Application - приложение документа

Это свойство позволяет получить объект приложения документа. Вы можете подумать, что это - ошибка, что, наоборот, объект документа содержится в объекте приложения. Однако, ошибки нет. Это свойство позволяет обращаться к приложению тогда, когда у нас нет ссылки на него, а есть лишь ссылка на документ. Например, код в листинге 10.15 позволяет скрыть окно Microsoft Word вместе с окном документа, используя свойство Visible объектаApplication.

ThisDocument.Application.Visible = False

Листинг 10.15. Скрытие окна приложения (html, txt)

10.6.2. AttachedTemplate - присоединенный шаблон

Свойство AttachedTemplate позволяет узнать, какой шаблон присоединен к документу, а так же - изменить этот шаблон на другой. Это очень полезное свойство - ведь шаблоны могут содержать множество нужных макросов, стилей и т.д., а с помощью AttachedTemplate можно удобно управлять ими.

Например, такой листинг 10.16. позволяет вывести имя присоединенного шаблона и путь к нему:

Dim obj_Templ As Template

Set obj_Templ = ActiveDocument.AttachedTemplate

MsgBox ("Имя шаблона: " & obj_Templ.Name & _

", путь к шаблону: " & obj_Templ.Path)

Листинг 10.16. Имя присоединенного шаблона и путь к нему (html, txt)

Здесь мы сначала объявили новую переменную типа Template, потом присвоили ей ссылку на шаблон, присоединенный к активному документу, а потом воспользовались свойствами Name и Path шаблона, чтобы вывести информацию о нем.

Листинг 10.17 позволяет присоединить к документу шаблон MyTemplate.dotm, расположенный на диске C.

ActiveDocument.AttachedTemplate = "C:\MyTemplate.dotm"

Листинг 10.17. Присоединяем шаблон к документу (html, txt)

10.6.3. Bookmarks - закладки

Возвращает коллекцию Bookmarks, которая содержит все закладки в документе. Закладки позволяют удобно организовать навигацию по документу, особенно удобно с их помощью автоматизировать создание новых документов на основе шаблонов. Подробнее о закладках мы поговорим ниже.

10.6.4. Characters, Words, Sentences, Paragraphs и другие

10-04-Символы.docm - пример к п. 10.6.4.

Все эти свойства возвращают объекты, предназначенные для работы с различными частями документа.

  • Characters (Символы) - возвращает одноименную коллекцию, каждый объект которой представляет собой отдельный символ в документе. Каждый объект коллекции Characters представляет собой диапазон ( Range ), содержащий один символ

  • Words (Слова) - то же самое, но уже для слов.

  • Sentences (Предложения) - то же самое для предложений.

  • Paragraphs (Абзацы) - коллекция абзацев документа.

  • Помимо этих коллекций документ может содержать и другие подобные. В частности, следующие:

  • Hyperlinks - гиперссылки. При добавлении гиперссылки обратите внимание на то, что метод Add использует объект привязки гиперссылки - Anchor (Якорь) - им может быть, например, графический или текстовый элемент.

  • Indexes - индексы.

  • InlineShapes, Shapes - фигуры, графические элементы

  • Lists - списки.

  • OMaths - формулы.

  • Sections - разделы.

  • Tables - таблицы.

Работа со всеми этими коллекциями схожа. Давайте рассмотрим ее на примере коллекции Characters, которую, как уже было сказано, можно использовать для работы с отдельными символами документа. Работу с некоторыми другими коллекциями мы рассмотрим ниже.

Листинг 10.18 позволяет вывести в окне сообщения информацию о количестве символов в документе (включая пробелы).

MsgBox ("Количество символов: " & _

ActiveDocument.Characters.Count)

Листинг 10.18. Выводим количество символов в документе (html, txt)

С помощью метода Item коллекции, мы можем получить доступ к каждому символу документа. Например, с помощью этого метода можно проводить различные статистические подсчеты. листинг 10.19. позволяет узнать, сколько раз в документе использована буква "ф" в верхнем и нижнем регистре.

Dim var_Fcount

var_Fcount = 0

For i = 1 To ActiveDocument.Characters.Count

If ActiveDocument.Characters.Item(i) = "ф" Or _

ActiveDocument.Characters.Item(i) = "Ф" Then _

var_Fcount = var_Fcount + 1

Next i

MsgBox ("Количество букв 'Ф' в документе: " & _

var_Fcount)

Листинг 10.19. Подсчитываем количество вхождений буквы "ф" (html, txt)

Листинг 10.20 позволяет заменить букву "ё" в верхнем и нижнем регистре на "е".

Dim obj_D As Document

Set obj_D = ActiveDocument

For i = 1 To obj_D.Characters.Count

If obj_D.Characters.Item(i) = "ё" _

Then obj_D.Characters.Item(i) = "е"

If obj_D.Characters.Item(i) = "Ё" _

Then obj_D.Characters.Item(i) = "Е"

Next i

Листинг 10.20. Замена буквы е на е (html, txt)

В листинге 10.21 вы можете найти программу, которая "переворачивает" весь текст в документе - меняет последний символ с первым, второй - с предпоследним и так далее.

Dim obj_D As Document

Dim str_Chr As String

Dim var_Count As Variant

Set obj_D = Documents.Add

obj_D.Range.Text = "Привет!"

var_Count = obj_D.Characters.Count

For i = 1 To var_Count \ 2

str_Chr = obj_D.Characters.Item(i)

obj_D.Characters.Item(i) = _

obj_D.Characters.Item(var_Count - i + 1)

obj_D.Characters.Item(var_Count - i + 1) = _

str_Chr

Next i

Листинг 10.21. Переворачивание текста в документе (html, txt)

Здесь мы сначала заводим переменную для хранения ссылки на активный документ, далее - строковую переменную для временного хранения одного символа и переменную типа Variant, в которой будем хранить количество символов в документе.

Далее создаем новый документ и добавляем в него текст "Привет" с помощью свойства Text объекта Range. Именно этот текст мы и будем переворачивать.

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

В цикле мы сначала присваиваем i -й символ переменной, потом присваиваем i -му символу противоположный ему символ, а в конце - противоположному символу - символ, хранящийся в переменной. Обратите внимание на алгоритм расчета противоположного символа. Var_Count - i + 1 дает нам последний символ при i = 1, то есть - для первого символа и т.д. В этом несложно убедиться путем расчетов. Например, если в тексте 10 символов, то для обмена с первым символом ( i = 1) мы получим последний символ (10-1+1=10), для второго ( i =2) - девятый (10-2+1=9) и т.д.