Основы офисного программирования и язык VBA

         

Свойства-участники


Свойства, представляющие вложенные объекты, называют свойствами-участниками. Если X является свойством - участником объекта Application, то обращение к свойству X возвращает ссылку на объект X. Обращение Application.X.Y.Z, где X, Y и Z - свойства-участники, позволяет добраться до объекта Z, находящегося на третьем уровне вложенности. Обычно цепочка именования начинается спецификатором (объектом) Application, но иногда его можно опустить. Некоторые свойства и методы объекта Application относятся к глобальным. Для них спецификатор Application разрешается опускать, непосредственно именуя глобальный элемент. Вот пример нескольких обращений к элементам объекта Application:

Application.ActiveDocument ' Можно короче: ActiveDocument Application.ActiveWorkbook.ActiveSheet.Range("A1") = "Hi"' Можно так: ActiveSheet.Range ("A2") = "By-By" ' Можно и так: Range("A3") = "I'm glad to see you" 'Можно даже так! Application.Quit 'Только так! Quit не является глобальным методом.

Познакомимся на верхнем уровне со структурой приложений и посмотрим, как она изменилась при переходе от Office 97 к Office 2000. На рис. 1.6 , рис. 1.7 , рис. 1.8 и рис. 1.9 показано, как выглядели объекты Application четырех основных приложений в Office 97. Что можно отметить, анализируя эту структуру:

  • Среди объектов, вложенных в Application, есть основные, задающие специфику приложения, - это документы Word (коллекция объектов Document), рабочие книги Excel (коллекция объектов WorkBook), презентации PowerPoint (коллекция объектов Presentation), отчеты Access (коллекция объектов Report). Позже мы познакомимся с ними подробнее, сейчас же отметим только, что каждый из них организован не менее сложно, чем их родитель - объект Application. Кроме основных объектов есть и вспомогательные объекты, специфичные для данного приложения. Например, у приложения Word это коллекции CustomDictionaries, Languages - коллекции пользовательских словарей и языков, используемых в документах Word.
  • Есть объекты, общие для всех приложений.
    К ним относятся коллекции, CommandBars, Dialogs, Windows объекты Assistant, FileSearch, VBE. Эти объекты хранятся в библиотеке Office, присоединяемой к каркасу каждого документа. Они определяют такие общие для всех документов свойства, как возможность работы с инструментальными панелями, содержащих меню, элементы управления и кнопки; использование стандартных диалогов в документах и другие свойства, задающие, в целом, единый интерфейс документов в среде Office 2000.
  • На общем фоне в Office 97 выделяется объект Access.Application. Структура его бедна. У него нет общих объектов, весьма ограничено число вспомогательных объектов, определяющих специфику данного приложения.


увеличить изображение
Рис. 1.6. 

Рис. 1.7. 

увеличить изображение
Рис. 1.8. 

Рис. 1.9. 
Что же нового появилось в Office 2000? Прежде всего, следует отметить, что все свойства, которыми объекты обладали, у них остались. Но, конечно, появились и новые свойства. Ниже в таблице показаны основные, новые свойства, встроенные в объекты Application в Office 2000.

Таблица 1.1. Новые свойства объектов Application в Office 2000СвойстваWordExcelPower PointAccess
AnswerWizard++++
COMAddIns++++
LanguageSettings++++
EmailOptions+---
DefaultWebOptions-++-
MsoDebugOptions--+-

Появилась возможность подключения COM - объектов, расширяющих функциональные возможности документов; коллекция COMAddIns стала частью библиотеки общих объектов Office 2000. Напомним, что ранее каждое из приложений имело свою специфическую для данного приложения коллекцию AddIns. Каждый из элементов AddIn дополнял приложение новыми функциями, но мог работать только в рамках одного приложения. Этим коллекциям и компонентному программированию будет посвящена отдельная лекция этой книги.
Новые свойства отражают основные направления развития Office 2000 - создание и работа над документами в Интернете, работа в многоязычной среде, повышение интеллектуальности, использование компонент.
Особо следует отметить и другую линию существенных изменений, направленных на унификацию средств, используемых в разных приложениях.


Так объект Access.Application приблизился к своим "братьям" и по структуре свойств в меньшей степени выбивается из общего ряда. Объекты из библиотеки Office, задающие общие для приложений Office 2000 свойства, теперь доступны и в Access Заметим, правда, что сама библиотека Office все еще не подключается по умолчанию при создании каркаса документа Access. Однако, теперь, как и в общем случае, можно щелчком Alt+F11 вызвать Редактор VBE и в меню References подключить эту и другие библиотеки.
Важно и то, что у объекта Access.Application, как и положено, помимо главных свойств (Forms, Reports, Modules) появились на верхнем уровне и дополнительные свойства - участники. Отметим некоторые из них:
  • CodeData. Этот объект позволяет получить доступ к разнообразным коллекциям данных - AllQueries, AllTables, AllViews, AllDataBaseDiagrams, AllStoredProcedures - запросам, таблицам, диаграммам, хранимым процедурам.
  • CodeProject. Этот объект позволяет получать доступ к коллекциям основных объектов приложения - AllForms, AllMacros, AllModules, AllReports, AllDataAccessPages. У объекта есть и методы, позволяющие, например, устанавливать связь с базой данных - OpenConnection, CloseConnection.
  • CurrentData. Представляет косвенную ссылку на текущий объект данных и обладает всеми свойствами объекта CodeData.
  • CurrentProject. Представляет косвенную ссылку на текущий проект и обладает всеми свойствами объекта CodeProject.
  • DBEngine. Объект, представляющий машину вывода со всеми обычными для этого объекта свойствами и методами, как, например, - BeginTrans, CreateDataBase, CreateWorkSpace, OpenConnection - начать транзакцию, создать базу данных, рабочее пространство, открыть связь.
  • DataAccessPages. Эта коллекция объектов, задающих страницы доступа к данным. Каждый из этих объектов содержит такие свойства, как WebOptions, ConnectionString и другие.


Содержание раздела