Основы офисного программирования и документы Word


Объект VBProject и коллекция VBProjects


В Office 2000 возможности работы с программными проектами документов существенно расширились. У объекта VBProject и коллекции VBProjects в Office 2000 появилось большое число новых свойств и методов. Замечу, что определенную сложность в изучение этого материала вносит то обстоятельство, что в справочной системе справки по многим объектам, связанным с проектами, отсутствуют или, что еще хуже, содержат неполные сведения, не отражающие действительной картины. Так было и в Office 97, такая же ситуация имеет место и в Office 2000.

Скажем несколько слов о коллекции VBProjects. В Office 97 у этой коллекции имелись три простых свойства Count, Parent, VBE и единственный метод - Item. У нее не было методов Add и Delete, так как проекты были прочно связаны со своими документами и удалялись и появлялись одновременно со своими документами. В Office 2000 у этой коллеции появились три метода для добавления проектов в коллекцию Add, AddFromFile, AddFromTemplate, соответственно появился и метод Remove для удаления элементов коллекции. Помимо этого, коллекция имеет методы SaveAs и FileName для сохранения проектов, появились также и новые свойства, в частности свойство StartProject.

С этими новыми свойствами и методами еще предстоит разобраться. Пока они у меня не работают. Я не провел еще всех необходимых исследований и посему не готов дать точный ответ даже на такой простой вопрос, как добавить проект в коллекцию VBProjects?

Имея коллекцию VBProjects, добраться до отдельного проекта нетрудно, делается это обычным для коллекций способом, Можно, конечно, использовать метод Item, но, проще всего, указать индекс элемента в коллекции, при этом роль индекса может играть и имя проекта. Так что спуститься по иерархии сверху вниз нетрудно: VBE.VBProjects(1) дает ссылку на первый проект коллекции. Также просто и от отдельного проекта перейти вверх по иерархии. Объект VBProject имеет свойство Collection, позволяющее получить коллекцию VBProjects, а его свойство VBE позволяет подняться еще выше по иерархии и добраться до корневого объекта VBE; от корня можно уже спуститься в любую заданную точку. Итак, разобрав, как связан объект VBProject с объектами, вышестоящими в иерархии, давайте более подробно остановимся на его свойствах и методах.

В Office 97 объект класса VBProject имел только свойства и не имел методов. О двух свойствах этого объекта Collection и VBE я уже упомянул, они позволяют подняться по иерархии. Свойства Description и Protection позволяют получить описание проекта и определить, защищен ли он. Свойства HelpFile и HelpContextId позволяют указать справочную систему по проекту, если таковая существует. Наиболее важными, пожалуй, свойствами являются свойства VBComponents и References. Свойство VBComponents возвращает коллекцию компонент проекта: модули, классы и формы, входящие в проект. Имея эту коллекцию, можно перейти к соответствующей компоненте и программно работать с ней. Свойство References позволяет получить доступ к коллекции ссылок на элементы, доступные из данного проекта. Элементы этой коллекции соответствуют ссылкам, отображаемым в пункте References меню Tools в среде редактора VB.

В Office 2000 объект VBProject получил несколько новых свойств, например, свойства: CompatibleOleServer, IsDirty, Type. Первое из них возвращает или устанавливает строку, содержащую совместимый сервер Автоматизации для проекта. Булево свойство IsDirty, как обычно для свойства с таким именем указывает на внесение изменений в проект с момента последнего его сохранения. Свойство Type задает тип проекта, указывающий на то, что проект может относиться, например, к ActiveXDLL или ActiveXControl. Объект VBProject теперь имеет и методы. Метод MakeCompiledFile записывает проект в виде библиотеки DLL, имя которой задается новым свойством BuildFileName. Метод SaveAs позволяет сохранить проект в указанном месте.

Изменения в составе свойств и методов объектов VBProject и VBProjects симптоматичны. Они отражают тенденцию к возрастанию потребностей офисных программистов при работе с программными проектами документов.



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