Институт управления, бизнеса и права
Опубликован: 25.03.2009 | Доступ: свободный | Студентов: 7323 / 1525 | Оценка: 4.41 / 4.15 | Длительность: 14:33:00
Лекция 10:

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

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

10.6.7. FullName, Name, Path - пути и имена

Свойство FullName возвращает строку, содержащую полное имя документа - то есть полный путь к документу и его имя.



                            Листинг
                        10.27.
                    выводит полное имя документа в окне сообщения.
MsgBox (ActiveDocument.FullName)
Листинг 10.27. Выводим полное имя документа

Свойство Name возвращает имя документа без пути, а Path - путь без имени.

10.6.8. Saved - сохранен или нет

Возвращает True если документ не изменялся после последнего сохранения.

10.6.9. Tables - работа с таблицами

10-07-Таблицы.docm - пример к п. 10.6.9.

Свойство возвращает коллекцию Tables (Таблицы), которая содержит объекты Table - таблицы, которые имеются в документе. Работа с таблицами похожа на работу с другими объектами документов.

Например, чтобы добавить в документ новую таблицу, нужно воспользоваться методом Add коллекции Tables. Рассмотрим пример (листинг 10.28.). Добавим в позицию курсора таблицу, состоящую из 3-х строк и 4-х столбцов.

Dim obj_Table As Table
Set obj_Table = _
ActiveDocument.Tables.Add(Range:=Selection.Range, _
NumRows:=3, NumColumns:=4)
With obj_Table
    .Borders.OutsideLineStyle = wdLineStyleTriple
    .Borders.InsideLineStyle = wdLineStyleSingle
End With
Листинг 10.28. Добавляем в документ новую таблицу

Здесь мы сначала объявляем объектную переменную типа Table - для хранения ссылки на таблицу. Далее - при помощи метода Add коллекции Tables добавляем в документ новую таблицу, состоящую из 3-х строк и 4-х столбцов. Обратите внимание на параметр Range метода Add. Он задает позицию в документе, куда будет вставлена новая таблица. Здесь мы приравняли ему такое значение: Selection.Range. Ниже мы будем говорить и об объекте Selection, и о Range, однако отметим, что выражение Selection.Range можно передать обычным языком как "Текущее выделение". Значит, таблица будет вставлена в выделенную область документа, либо, если область документа явно не выделена - туда, где в момент запуска макроса установлен курсор.

Добавленная таблица не очень хорошо заметна в документе - она состоит из невидимых линий. Поэтому мы настраиваем отображение линий таблицы с помощью блока With - End With для переменной obj_Table. Воспользуемся коллекцией Borders объекта Table - она позволяет работать с границами таблицы. Параметр OutsideLineStyle позволяет задавать тип линий внешней границы таблицы. Здесь мы установили тип линии wdLineStyleTriple - это тройная линия. Аналогично, с помощью параметра InsideLineStyle мы сделали внутренние линии таблицы одинарными ( wdLineStyleSingle ).

10.6.10. Omaths - математические формулы

Свойство OMaths возвращает коллекцию OMaths, которая содержит математические формулы, хранящиеся в документе. Как и в случае с другими подобными коллекциями, OMaths имеет множество полезных свойств и методов. Давайте рассмотрим пример добавления в документ новой математической формулы (листинг 10.29). Этим кодом мы добавим новую формулу, преобразовав в нее выделенный фрагмент документа.

Selection.OMaths.Add Selection.Range
    Selection.Range.OMaths(1).BuildUp
Листинг 10.29. Добавляем в документ новую формулу

Итак, для добавления нового объекта OMath в коллекцию OMath, мы используем метод Add. Главный параметр, который нужно передать методу Add - это объект типа Range, содержащий текст, который должен быть преобразован в формулу. В нашем случае это конструкция Selection.Range. Проще говоря, выделенный текст. Далее мы используем коллекцию OMaths для объекта Range текущего выделения. Она будет содержать все объекты OMath в выделении. Мы обращаемся к первому (и единственному) элементу коллекции и выполняем метод BuildUp - этот метод преобразует текст объекта в профессиональный математический вид.

10.7. События объекта Document

10-08-Documents События.docm - пример к п. 10.7.

Работать с событиями документа гораздо проще, чем с событиями приложения. Чтобы создать обработчик события для документа нужно войти в редактор Visual Basic for Applications, выбрать в окне Project Explorer объект ThisDocument - этот объект представляет собой документ, в котором хранится VBA-проект. Далее, откроется окно редактирования кода, в нем, в списке объектов, нужно выбрать Document - этот объект символизирует документ, которому принадлежит проект, а в окне выбора события - событие, для которого мы хотим создать обработчик. Вот, как (рис. 10.3.) выглядит окно редактора после создания пустого обработчика события New для документа.

Добавление обработчика события для документа (10_03.bmp)

увеличить изображение
Рис. 10.3. Добавление обработчика события для документа (10_03.bmp)

Событие New добавляется по умолчанию при выборе объекта Document в списке объектов редактора. Однако, это событие пригодно лишь для использования его в документах, которые планируется сохранить как шаблоны и использовать для автоматизации создания других документов. Ниже мы рассмотрим пример работы с шаблонами.

New - одно из самых полезных и часто используемых событий документа. Помимо него можно отметить события Open, которое выполняется при открытии документа, и Close - оно выполняется при закрытии. Эти события работают и с обычными документами, а не только с шаблонами, как New.

Open и Close используют для настройки проверок документа перед закрытием, для инициализации событий приложения ( Open ) и в других подобных случаях. Если вам нужно сделать что-то до начала редактирования документа или перед его закрытием - воспользуйтесь событиями Open и Close.

10.8. Выводы

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

< Лекция 9 || Лекция 10: 1234 || Лекция 11 >
Евгений Ушаков
Евгений Ушаков

Добрый день! Поясните, пожалуйста, 3000 р. стоит документ об окончании курса. Если он не нужен, то можно учиться бесплатно?

Александр Новиков
Александр Новиков

Добрый день! Очень нужен справочник по объектам VBA c описание их методов и свойств.

Кто-нибудь знает, где можно приобрести?

(Он конечно есть в VBA - Object browser, но не очень удобный)