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

       

Построение каркаса документа


Мы уже сказали, что совокупность библиотек классов Office 2000 представляет каркас документов, которые могут порождаться в этой программной среде. Давайте же рассмотрим, как создается каркас одного документа. Обычно, это тривиальная операция, выполняемая почти автоматически. В свое время, рассматривая программирование в среде Office 97, мы не считали необходимым введения самого термина "каркас документа". В Office 2000 возросли возможности создания разнообразных каркасов, потому стоит ввести и сам термин и обратить на это особое внимание.

Итак, всякий раз, когда открывается новый документ в одном из приложений Office 2000, например Word, Excel или Power Point , автоматически создается каркас этого документа. Это означает, что из всей совокупности библиотек выбираются те библиотеки, которые и будут составлять каркас этого документа. И это означает, что все объекты, классы которых определены в этих библиотеках, будут доступны в данном документе.

Какие же библиотеки входят в каркас документа по умолчанию? Определяющую роль играет то, в каком приложении Вы создаете документ. В каркас всегда входит библиотека, задающая это приложение, - Word 9, Excel 9 или тот же Power Point 9. В состав этой библиотеки входит корневой объект Application (Word9.Application, Excel9.Application и т.д.). Этот корневой объект и определяет основную структуру документа. Но помимо этой библиотеки в каркас всегда входят и другие библиотеки. Взгляните на каркас по умолчанию документа Word:


увеличить изображение
Рис. 1.2.  Каркас по умолчанию документа Word

Как можно видеть, в каркас входят кроме библиотеки Word еще три библиотеки и два проекта:

  • Word - библиотека, задающая основу документов Word. Здесь хранится корневой объект Application и все классы объектов, вложенных в корневой объект.
  • Office - библиотека объектов, общих для всех приложений Office 2000. Здесь находятся классы, задающие Помощника (объект Assistant и все классы, связанные с ним). Здесь же находятся классы, определяющие инструментальные панели - CommandBar и классы других общих объектов.
    В частности, появился новый объект, которого не было в предыдущей версии - Мастер Ответов (Answer Wizard) и его файлы.
  • Stdole - библиотека классов, позволяющая работать с OLE - объектами и реализовать Автоматизацию.
  • VBA - библиотека классов, связанных с языком VBA. Здесь хранятся все стандартные функции, встроенные в язык, и многое другое.
  • Project - проект по умолчанию, связанный с документом. Классы, которые могут программистом создаваться в этом проекте, методы, свойства, - все это доступно для просмотра, так же, как и объекты классов, встроенных в стандартные библиотеки.
  • Normal - проект, доступный для всех документов Word. Здесь могут храниться функции и классы, используемые всеми документами.


Состав каркаса для документов, открываемых в Excel или Power Point, почти такой же. Естественно, библиотека Word заменяется библиотекой соответствующего приложения. Кроме того, отсутствует проект Normal, характерный только для документов Word.

До сих пор речь шла о каркасе, создаваемом по умолчанию. Но вся прелесть в том, что этот каркас можно существенно изменить, добавив в документ новые свойства. Для этого достаточно включить в состав каркаса и другие библиотеки, составляющие совокупность библиотек Office 2000. Набор этих возможностей, а, следовательно, и число таких дополнительно поставляемых библиотек в Office 2000 существенно выросло по сравнению с предыдущей версией.

А теперь о том, как это делается. Прежде всего, заметим, что расширение каркаса делается руками, а не программно. Для того чтобы добавить в документ новые возможности, необходимо вначале войти в режим редактора программного проекта, для чего достаточно из меню Tools | Macro выбрать пункт Visual Basic Editor или нажать комбинацию клавиш Alt + F11. Затем уже в Редакторе из меню Tools следует выбрать пункт References и в появившемся списке всех возможных библиотек, включить те, которые отвечают Вашим потребностям. На рис. 1.3 показан процесс подключения к документу Word новых библиотек.




Рис. 1.3.  Расширение возможностей каркаса документа

В частности, мы подключили библиотеки объектов трех приложений - Outlook, Access и Excel, библиотеку с WEB - компонентами, Мастер этих компонент и элемент управления для работы в Internet. В результате каркас документа существенно обновился, и наш документ теперь обладает потенциально большими возможностями, чем документ, создаваемый по умолчанию. В этом документе можно организовать совместную работу четырех приложений Office 2000, работать с WEB - компонентами и использовать возможности встроенного элемента управления при работе над документом в Internet. Конечно, каркас обеспечивает только потенциальную возможность, чтобы все заработало, нужно многое сделать, наполняя каркас плотью. Например, необходимо описать и создать соответствующие объекты Application для каждого из совместно работающих приложений, прежде чем начать с ними работать.

На рис. 1.3 можно увидеть лишь небольшую часть всей совокупности библиотек (их несколько десятков), доступных в Office 2000. Профессионалу знать их, конечно, совершенно необходимо. Но знакомство с ними, хотя бы шапочное, выходит за пределы этой книги, посвященной VBA . О них и об объектах, в них хранящихся, пойдет разговор в других книгах, связанных общей темой офисного программирования в среде Office 2000.

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


увеличить изображение
Рис. 1.4.  Окно просмотра объектов каркаса документа

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


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