Средства программирования в офисных пакетах появились довольно давно. Традиционно они имели чисто внутреннее назначение и были предназначены в основном для создания макрокоманд, позволяющих автоматизировать специализированные процедуры обработки документов конечным пользователем.

Ситуация изменилась на рубеже 1993-94 годов, когда Microsoft объявила о намерении создать универсальную систему программирования для прикладных программ на основе Visual Basic. С точки зрения разработчика, развитие Microsoft Office проходило по следующим основным направлениям:

  • реализация унифицированной иерархической объектной модели на основе OLE Automation (ActiveX);
  • создание единого внутреннего механизма программирования приложений на основе Visual Basic for Applications;
  • интеграция с другими средствами разработки Microsoft, в первую очередь с Visual Basic.

Впервые эти задачи были более или менее решены в Microsoft Office 97, появление которого в конце 1996 года стало знаменательным рубежом в развитии семейства офисных продуктов Microsoft: впервые пакет был представлен в качестве единой платформы для создания бизнес-приложений, ориентированных на решение специализированных задач пользователей. Его новое позиционирование подчеркивалось специальным выпуском для разработчиков — Developer Edition. Одновременно Microsoft стала активно продвигать механизм VBA в качестве стандарта отрасли для управления программируемыми приложениями, объявив о возможности его лицензирования (подробности см. «VBA в бизнес-приложениях третьих фирм»).

Зачем VBA нужен корпоративным пользователям

Начиная с версии VBA 5.0, которая входила в состав Office 97, Microsoft продвигает этот программный механизм в качестве стандартного средства управления программируемыми приложениями, создаваемыми независимыми разработчиками. За прошедшие с того момента три года лицензии на его применение приобрели более 150 фирм, в том числе такие известные, как Autodesk, Adobe, PeopleSoft, Baan, SAP, и многие другие, которые имеют на своих продуктах логотип «Featuring Microsoft Visual Basic Technology».

Выпуск версии VBA 6.0, вошедшей в состав Office 2000, ознаменовал начало новой политики Microsoft по продвижению этого средства в качестве платформы разработки. Если ранее лицензии на VBA могли приобрести только разработчики коммерческих программных продуктов, то теперь эти средства могут применять корпоративные заказчики для создания приложений для внутреннего использования.

Распространением лицензий для разработчиков коммерческих программ во всем мире занимаются два авторизованных VBA-агента: американские фирмы Mystic River Software и Summit Software. В сентябре прошлого года стало известно, что первую лицензию на VBA 6.0 приобрела российская компания — «СКБ Контур» из Екатеринбурга.

Для корпоративных клиентов лицензии распространяются через обычную сеть партнеров Microsoft в рамках программ Open License и Select License. Ориентировочная стоимость такой лицензии от 23 до 30 долл. для одной программы, установленной на отдельном компьютере.

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

VBA помогает избежать таких проблем, поскольку он предлагает подход к проведению разработки «сверху вниз», что обеспечивает децентрализацию процесса разработки. Тогда ИТ-подразделение может сконцентрироваться на создании базовой инфраструктуры с помощью приложений на базе COM (Component Object Model). Затем, интегрировав VBA в эти приложения, компании могут осуществить передачу системы разработчикам подразделений, которые обладают достаточными знаниями в предметной области.

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

Задачи, решаемые Microsoft Office

Можно выделить три основных варианта применения Microsoft Office с точки зрения разработчика:

  • программирование офисного приложения, с помощью которого выполняется как простая настройка интерфейса, так и решение новых специальных задач;
  • создание программируемых документов, которые фактически представляют собой новый вид интерактивных приложений, функционирующих в среде Microsoft Office;

  • использование готовых объектов Microsoft Office в качестве программных компонентов для приложений, создаваемых независимыми разработчиками.

Различные выпуски Microsoft Office 2000

В новом пакете увеличилось количество отдельных приложений: к привычным Access, Excel, Outlook, PowerPoint и Word прибавились известный HTML-редактор FrontPage (не входящий ранее в состав пакета) и новые PhotoDraw, Publisher и Small Business Customer Manager. Соответственно, увеличилось и число разных выпусков пакета — Standard, Small Business, Professional, Premium и Developer.

Первые четыре выпуска отличаются только составом приложений, функциональность каждой отдельной программы одинакова везде во всех вариантах. Все они включают VBA и ряд других средств программирования, которых будет вполне достаточно для большинства разработчиков. В России эти выпуски Office 2000 распространяются в локализованном варианте: все приложения (кроме FrontPage и PhotoDraw) представлены русскоязычными версиями, но среда VBA и его справка реализованы на английском языке.

Состав различных выпусков
Microsoft Office 2000

Приложения
Access
         
Excel
         
FrontPage
         
Outlook
         
PhotoDraw
       
PowerPoint
         
Publisher
         
Word
         
WordSmall Business Customer Manager
         
Internet Explorer 5.0
         
Дополнительные компоненты
Вспомогательные средства Office
         
Коллекция картинок
         
Серверные расширения
         
Средства разработки
VBA 6.0
         
Дополнительные средства разработчика
         
Дополнительные приложения разработчика
         
Модули поддержки Access и MSDE
         
Дополнительная печатная и электронная документация, примеры кода
         

 

Особняком стоит выпуск Microsoft Office 2000 Developer (MOD 2000), который содержит вариант Premium (4 компакт-диска), а также дополнительные средства для разработчика (1 компакт-диск) и внушительную электронную документацию MSDN Library на трех дисках. В него входят только англоязычные программы и документы. Подчеркнем, что расширения версии Developer реально понадобятся тем, кто занимается созданием достаточно профессиональных приложений.

С точки зрения программирования наиболее важным является то, что расширилось число приложений, использующих единый механизм программирования и среду VBA: к Excel, PowerPoint и Word добавились Access, Outlook и FrontPage. Напомним, что ранее программа Outlook 97 имела объектную модель, которой можно было управлять только извне с помощью, например, VB или VBScript, а Access 97 использовала собственный вариант Basic и среды разработки.

Ключевым новшеством Office 2000 является также реализация единой для всех приложений модели подключения программных расширений на основе технологии COM Add-Ins, которая должна серьезно помочь разработчикам в создании бизнес-приложений и универсальных дополнительных средств для Microsoft Office. Но создание самих расширений возможно только с помощью средств версии Developer.

Новинкой является появление дополнительных средств защиты от вирусов. Одно из них предназначено для применения непосредственно конечным пользователем: использование механизма сертификации VBA-проектов, включенных в документ с помощью электронной подписи. Вариант, реализованный в Office 2000, безусловно очень полезен, однако пока он представляется довольно «сырым»: в некоторых ситуациях он просто не срабатывает. Microsoft обещает устранить подобные проблемы в наборах обновлений для Office 2000.

Общим направлением офисных пакетов (с точки зрения традиционного пользователя) является их нацеленность на применение Интернета и HTML-стандартов. В этой связи нужно отметить возможность использования интегрированного в среду приложений редактора сценариев (кроме Outlook), набора ActiveX-компонентов для публикации данных в Web, серверных расширений для управления онлайновыми дискуссиями, объекта Data Access Page для отображения информации из баз данных в среде браузера, а также ряда других объектов и функций.

В пользовательском интерфейсе среды VBA в целом все осталось без изменений, но внутри произошли серьезные перемены. Как утверждает Microsoft, в Office 2000 исчезла грань, разделявшая ранее VBA и обычный VB. Это означает, что в VBA 6.0 (то есть в Office 2000) появились не только новые функции VB 6.0, но и некоторые возможности, которые были в VB 5.0, но отсутствовали в VBA 5.0. Кроме того, их список можно найти в документации, но этот перечень явно не полный, так что лучше просто изучать VB 6.0. Для доступа к базам данных теперь можно использовать технологию OLEDB/ADO — Office 2000 включает версию библиотеки ADO 2.1, которую уже сейчас можно обновить на появившуюся ADO 2.5.

В то же время тезис о тождественности VBA и VB является, по крайней мере, преждевременным: пока до конца не преодолены различия в организации среды разработки, в работе конструкторов форм, в совместимости форматов файлов с исходными модулями, в использовании программных расширений.

Расширения Microsoft Office 2000 Developer

Здесь следует в первую очередь отметить принципиально новую возможность создания автономного VBA-проекта: ранее программный код мог включаться только в состав документа или шаблона того или иного офисного приложения. Теперь разработчик может создавать как обычные ActiveX DLL, так и универсальные расширения COM Add-In для офисных пакетов. Кроме того, конструктор COM Add-In может использоваться в VB 5.0 и 6.0.

Разработчикам будет также полезен набор конструкторов Add-In и мастеров для упрощения программирования в среде VBA, а также
дополнительные элементы управления для работы с базами данных OLEDB/ADO.

Кроме того, MOD 2000 содержит несколько автономных приложений для разработчиков: Visual SourceSafe (поддержка групповой разработки), HTML Help Workshop (создание справочных систем в новом стандартном формате Windows HTMLHelp), Answer Wizard Builder (интеграция запросов на естественном языке к электронной справке), Microsoft Agent SDK (комплект программ для создания изображений, используемых в Office Assistants), Access Runtime (модули поддержки времени выполнения для дистрибуции Access-приложений), а также полный набор MSDE для разработчика.

Начиная с ноября 1999 года в состав MOD 2000 включен новый продукт Microsoft Access Workflow Designer for SQL Server (Microsoft AWD). Разработчики, которые ранее приобрели MOD 2000, могут получить Microsoft AWD бесплатно через информационный центр российского отделения Microsoft.

Access Workflow Designer для SQL Server (MS AWD)

Осенью 1999 года компания Microsoft выпустила новый инструмент Access Workflow Designer для SQL Server (MS AWD), ранее известный под кодовым названием «Grizzly». С конца 1999 года этот продукт входит в состав Microsoft Office 2000 Developer. Пользователи MOD 2000, которые ранее купили этот пакет, могут получить MS AWD бесплатно по адресу http://msdn.microsoft.com/officedev.

Как видно уже из названия, MS AWD предназначен для создания систем документооборота на основе MS SQL Server или Access 2000 и Web-технологий. С его помощью разработчики могут генерировать промежуточный программный слой, который управляет разнообразными бизнес-правилами доступа группы пользователей к документам, хранимым в базе данных. Для описания деловых процессов применяется визуальный конструктор и набор мастеров, а также комплект шаблонов с готовыми решениями, которые можно настраивать под конкретные задачи.

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

Помимо этого, MS AWD позволяет разработчикам автоматически генерировать нормативные правила, касающиеся технологических процессов, происходящих на SQL Server. Эти возможности позволят значительно сократить время, затрачиваемое на разработку и внедрение бизнес-нормативов, применяемых к информации, хранящейся на базе SQL Server, поскольку дадут возможность произвольно настраивать таблицы и процедуры хранения.

Чтобы предоставить пользователям наиболее полную среду разработки, компания Microsoft планирует также предложить разработчикам специализированную версию SQL Server 7.0 с Access Workflow Designer.

 

Кроме дополнительных программных средств в состав версии MOD 2000 входят три книги и весьма объемная электронная справочная система в виде MSDN Library. Эта документация, конечно, является очень полезной для разработчика, но все же ее качество требует существенного улучшения с точки зрения как повышения производительности встроенной справки, так и удобства работы с ней, полноты информации и упрощения процедур поиска нужных данных.

Новшества средств программирования
в Microsoft Office 2000

(без дополнений, входящих в состав Developer Edition)
Новая архитектура COM Add-In
Единая для всех приложений Office 2000 модель подключения программных расширений. Сами расширения COM Add-In могут создаваться с помощью любого инструмента, поддерживающего разработку COM-компонентов (VB, VC++, VJ++, MOD 2000 и др.).
Расширенная событийная модель
Word и PowerPoint включают свыше двух десятков новых событий, которые ранее относились только к окнам и документам.
Новые функции и объекты VBA 6.0
Набор новых функций обработки строк. Объекты FileSystemObject и Dictionary, а также ряд других новых функций VB 6. Как уверяет Microsoft, теперь VBA=VB с точки зрения языка
Защита документов от вирусов (только для Excel, Word, Outlook и PowerPoint)

1. Приложения Office могут включать антивирусное ПО для определения «настоящих» вирусов, написанных не только на VBA.

2. Для VBA-проектов используется механизм цифровой подписи и защиты от «несертифицированных» программ (в русской версии пока работает лишь на 50% из-за ошибок локализации)

Поддержка доступа к базам данных по технологии OLEDB/ADO
Включает последние версии библиотек: ADO 2.1 Library и ADO 2.1 Extensions for DLL and Security.
Редактор сценариев (кроме OutLook)
Интегрированная среда для разработки офисных документов в виде Web-страниц. Позволяет добавлять к HTML-документам сценарии (скрипты), встроенные элементы управления и компоненты ActiveX
Web-компоненты
Набор элементов управления ActiveX для поддержки публикаций таблиц, графиков, сводных таблиц и информации из баз данных на Web
Cерверные расширения
Библиотека MS Office Server Extensions позволяет программным образом управлять онлайновыми внутренними дискуссиями
Объект Data Access Page
Новый объект Access позволяет отображать информацию из баз данных в среде браузера в виде Web-страниц с использова-нием возможностей DHTML
Объекты HTML-Project и Scripts
Предоставляют в документы свойства и методы блоков сценариев, а также свойства и методы HTML-кода
Создание Help-файлов
Теперь пользователь может создавать файлы Справки, используя все возможности Web-страниц, включая поддержку сценариев, DHTML и элементов управления ActiveX

 

Поддержка в Интернете
Специализированный раздел для информационной и технической поддержки разработчиков в среде Microsoft Office: http://www.microsoft.ru/offext/officedev . Там находятся ссылки на русскоязычные и англоязычные ресурсы, технические статьи по программированию, список книг по VBA-программированию, раздел «Советы, вопросы и ответы» и ряд других материалов.