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, но и не только этого объекта, просматриваемые в трех разных местах ¾ в справочной системе, в окне просмотра (браузере объектов) и при появлении подсказки в момент программирования, к сожалению, могут не совпадать.

Во второй части этой процедуры приводятся некоторые свойства коллекции AddInsGUID и описание каждого элемента.

Есть смысл привести результаты тестовой печати при работе этой процедуры. Я выполнял ее в тот момент, когда были открыты два документа 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 я уже говорил, но, возможно, Вам будет интересно взглянуть на их полное описание.

     Назад                                             Вперед

Hosted by uCoz