
Свойства объекта Word.Application
Свойства любого объекта делятся на две группы: свойства-участники (объекты) и терминальные свойства (обычные переменные Visual Basic). Свойства-участники Word.Application приведены в таблицах 1.1 и 1.2. Там они были перечислены, сейчас мы рассмотрим их чуть более подробно. Но вначале несколько слов о более простой группе терминальных свойств.
Терминальные свойства
Терминальные свойства просты для понимания, и я не буду долго на них останавливаться. Большинство из них являются общими для всех объектов Application. Попытаюсь сейчас дать небольшой обзор терминальных свойств, объединяя их в группы:
Свойства Top, Left, Heihgt, Width, Caption определяют размеры и заголовок окна приложения.
Свойства, начинающиеся с префикса User, - UserAddress, UserName и другие задают характеристики пользователя.
Группа булевых свойств, начинающихся с префикса Display, - DisplayScreenTips, DisplayStatusBar и другие позволяют включать или выключать отображение на экране тех или иных элементов интерфейса.
Группа свойств, начинающихся префиксом Default - DefaultSaveFormat, DefaultTableSeparator позволяет устанавливать некоторые характеристики, используемые приложением по умолчанию.
Группа булевых свойств, использующих суффикс Available - MAPIAvailable, MouseAvailable, MathCoprocessorAvailable устанавливают доступность некоторых устройств.
Другие свойства - булевы и не булевы задают другие многочисленные характеристики, например, CapsLock и NumLock позволяют определить, нажаты ли на клавиатуре соответствующие клавиши, Path - путь к каталогу, содержащему Word, ActivePrinter - активный принтер и так далее.
Я приведу лишь один простой пример на использование терминальных свойств, полагая, что и так все понятно.
Public Sub WorkWithTerm()
'Работа с терминальными свойствами
'Выключаю опции
Application. DisplayStatusBar = False
Application. DisplayRecentFiles = False
End Sub
Листинг 1.1.
Изменяя терминальные свойства DisplayStatusBar и DisplayRecentFiles, я выключил панель статуса и показ в меню File файлов последнего использования. Убедившись в том, что они действительно выключились, я немедленно включил их уже руками, взведя соответствующие флажки в меню Tools|Options.
Рассмотрю подробнее лишь одно терминальное свойство, не столь тривиальное и отличающееся по своему духу от других свойств. Свойство IsObjectValid(obj As Object) и свойством назвать нельзя. Скорее это метод, аргументом которого является некоторый объект произвольного класса, а возвращаемое значение булевого типа показывает, существует ли объект, заданный аргументом метода (свойства). Это свойство полезно применять при работе, например, с коллекциями. Прежде чем начинать работу с тем или иным элементом коллекции, полезно проверить, а существует ли такой элемент, или, возможно, он уже был удален. Вот пример работы с этим свойством:
Public Sub IsObjectProp()
'В этом примере используется свойство IsObjectValid
Dim MyPath As String
Dim SecondDoc As Document
MyPath = ActiveDocument.Path
'Определяем объект
Set SecondDoc = Documents.Open(MyPath & "\DocTwo.doc")
'Удаляем объект, возможно, по ошибке
Documents(1).Close
'Теперь нам объект понадобился
If Not IsObjectValid(SecondDoc) Then
'Добавляем элемент в коллекцию
Set SecondDoc = Documents.Open(MyPath & "\DocTwo.doc")
End If
'Работа с документом DocTwo
Debug.Print SecondDoc.Name
End Sub
Листинг 1.2.
Заметьте, при работе с этим свойством я использую созданный мной объект SecondDoc, поскольку не могу написать IsObjectValid(Documents("DocTwo")). Написать-то, конечно, могу, но при выполнении возникнет ошибка. Ошибка не связана с самой функцией IsObject, - она возникнет раньше при вычислении значения аргумента - Documents("DocTwo"), поскольку в коллекции Documents этот элемент отсутствует.