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


Совместная работа приложений. Создание объектов Application. Раннее и позднее связывание


Мы уже не раз говорили, что эффективность работы в среде Office 2000 во многом определяется возможностью совместной работы его приложений. С программистской точки зрения это означает, что в документе одновременно определены несколько объектов Application, задающих совместно работающие приложения. Давайте рассмотрим, как обеспечивается такая возможность. При открытии какого - либо из приложений, например, документа Word по умолчанию считается определенным соответствующий объект Application, а следовательно и все объекты, в него вложенные. Более того, определены и все объекты, входящие в каркас документа, построенный по умолчанию.

Если мы хотим обеспечить совместную работу приложений, например, Word, Excel и Access, то можно начинать работу с открытия документа любого из этих приложений, и тогда корневой объект Application этого приложения будет доступен автоматически. Остальные объекты Application необходимо подключить к уже открытому документу. Пусть для определенности мы открыли документ Word и хотим подключить Excel и Access. Вот, что для этого нужно сделать:

  • Расширить каркас документа Word, установив ссылки на библиотеки, содержащие приложения Excel и Access . Напомним, что это делается в редакторе VBE в окне References меню Tools.
  • Объявить объекты (указатели на объекты) соответствующего класса.
  • Создать объекты и связать указатели с вновь созданными объектами.

Когда корневой объект Application создан и доступен, то автоматически становятся доступными все вложенные в него объекты, так что теперь с приложением можно работать в обычном режиме, вызывая свойства и методы его объектов. При объявлении объектов возможны варианты. При этом следует помнить, что объекты в VBA задаются с помощью указателей. Рассмотрим три возможных варианта объявления:

  1. Dim MyXlApp As Object, MyAcApp As Object Этот вариант задает так называемое позднее связывание. На этапе объявления известно, что MyApp переменные являются объектами, а точнее, указателями на объекты, но еще не известно с объектами какого класса они будут связаны.


    Начало  Назад  Вперед



    Книжный магазин