BiVANT Книги К началу главы |
В.А. Биллиг
Средства разработки
VBA -
программиста
Офисное программирование. Том 1
"Русская редакция", 2001 г.
Глава 8(4)
Анализ свойств проекта
Перейдем теперь к рассмотрению примеров работы с объектом VBProject. Начнем с анализа терминальных свойств проектов:
Public Sub
WorkWithProjects()
'Анализ
терминальных свойств проектов коллекции
VBProjects
'Dim MyProject As
VBProject
Dim
MyProject As
Object
'Dim MyAddIn As
AddIn
Dim
MyAddIn As
Object
'Анализ
свойств проектов
Debug.Print
"Число проектов в коллекции - ", VBE.VBProjects.Count
For Each MyProject
In VBE.VBProjects
With MyProject
Debug.Print
"Имя Файла - ", .FileName
Debug.Print
"Имя проекта", .Name
Debug.Print
"Тип проекта", .Type
Debug.Print
"Описание проекта", .Description
Debug.Print
"Статус защиты", .Protection
Debug.Print
"Статус проекта", .Mode
'Debug.Print
"Изменения Вносились? ", .IsDirty
Debug.Print
"Имя Dll",
.BuildFileName
'Debug.Print
"Начальный статус", .StartMode
End With
Next MyProject
' Анализ коллекции AddIns
Debug.Print
"Число AddIn
в коллекции = ", VBE.AddIns.Count
For Each MyAddIn
In VBE.AddIns
Debug.Print
"GUID AddIn
= ", MyAddIn.GUID
Debug.Print
"Описание AddIn
- ", MyAddIn.Description
Next MyAddIn
End Sub
Сама программа достаточно понятна. В ее первой части я в отладочном режиме печатаю число открытых проектов и в цикле по коллекции VBProjects для каждого из проектов печатаю значения его основных терминальных свойств. Обратите внимание на два обстоятельства. В двух первых строчках программы дважды описана переменная MyProject ¾один раз как VBProject, другой – как Object. Это не случайно. Когда я пишу текст программы, я пользуюсь первым из этих объявлений, задавая раннее связывание. Тогда я получаю нужные мне подсказки о свойствах и методах этого объекта и вложенных в него объектов. Без этих подсказок жизнь программиста осложняется. Когда же я перехожу на выполнение программы, то приходится пользоваться вторым вариантом объявления, поскольку из-за недоработки в Office 2000 нормальная работа с этим объектом в документах Word невозможна, хотя в Excel работают и явные объявления типа VBProject. Заметьте также, что обращение к некоторым свойствам закомментированы. Это связано с тем, что не все заявленные новые свойства и методы реально работают в Office 2000. Следует отметить еще один небольшой, но досадный «жучок», проявляющийся в этом месте. При появлении подсказки ряд существующих свойств и методов не показывается, хотя они фактически работают, например, не показывается свойство Protection и Mode.
Списки свойств и методов объекта VBProject, но и не только этого объекта, просматриваемые в трех разных местах ¾ в справочной системе, в окне просмотра (браузере объектов) и при появлении подсказки в момент программирования, к сожалению, могут не совпадать.
Во второй части этой процедуры приводятся некоторые свойства коллекции AddIns – GUID и описание каждого элемента.
Есть смысл привести результаты тестовой печати при работе этой процедуры. Я выполнял ее в тот момент, когда были открыты два документа Word, один из них текст этой главы, второй ¾ тестовый документ, содержащий тексты выполняемых процедур. Вот результаты печати:
Число проектов в
коллекции -
3
Имя Файла - E:\O2000\DS2000\Ch8\Ch8.doc
Имя проекта Project
Тип проекта 100
Описание проекта
Статус защиты 0
Статус проекта
0
Имя Dll - E:\O2000\DS2000\Ch8\Ch8.DLL
Имя Файла - E:\O2000\Book2\Ch1\Normal
Имя проекта Normal
Тип проекта 100
Описание проекта
Статус защиты 0
Статус проекта
0
Имя Dll - E:\O2000\Book2\Ch1\Normal.DLL
Имя Файла - E:\O2000\Book2\CD\Ch1\DocOne.doc
Имя проекта DocOneProject
Тип проекта 100
Описание проекта - Этот проект содержит
примеры главы 2
Статус защиты 0
Статус проекта
0
Имя Dll - ProjectDll
Число AddIn в коллекции = 8
GUID AddIn = {7A588DE1-D5FF-11D2-A1F8-00A0C9A70018}
Описание AddIn - Use
the VBA String Editor to quickly and accurately build strings for SQL statements
or long scripts to embed in VBA code.
GUID AddIn =
{6961B1FB-3ECD-11D2-B81C-0060089A6839}
Описание
AddIn - Use the
Package and Deployment Wizard to package applications for installation and
deployment.
GUID AddIn = {0D87BB44-D5FF-11D2-A1F8-00A0C9A70018}
Описание
AddIn - Use the
Error Handler Add-in to automate creating standardized error handler code with
input dialogs that capture basic information and insert standardized error
handling code using a customizable template.
GUID AddIn = {0D87BB42-D5FF-11D2-A1F8-00A0C9A70018}
Описание
AddIn - Use the
Code Commenter Add-in to create well-commented code by automatically adding
comments and headers to procedures using customizable templates.
GUID AddIn = {0D87BADE-D5FF-11D2-A1F8-00A0C9A70018}
Описание
AddIn - Use the
Multi-Code Import/Export Add-in to import or export multiple objects in a single
operation.
GUID AddIn = {0D87BB14-D5FF-11D2-A1F8-00A0C9A70018}
Описание
AddIn - Use the
WinAPI Viewer utility to view and copy Win32 API Constants, Declares, and Types.
GUID AddIn = {0D87BAE8-D5FF-11D2-A1F8-00A0C9A70018}
Описание
AddIn - Use the VBA
Source Code Control Add-in to take advantage of the Microsoft Visual SourceSafe
source code control tool from within the Visual Basic for Applications 6.0 IDE.
GUID AddIn = {31E27D66-596E-11D2-B826-0060089A6839}
Описание
AddIn - Use the
Code Librarian to reuse and share code in a centralized database.
Как и положено, при двух открытых документах коллекция VBProjects содержит три проекта. Проекту моего тестового документа в свое время я дал имя (DocOneProject) и указал для него описание. О коллекции AddIns я уже говорил, но, возможно, Вам будет интересно взглянуть на их полное описание.