РЕЦЕНЗИИ
В. А. Биллиг. VBA в Office 2000. Офисное программирование. М., Русская Редакция, 1999. - 480 с.
Владимир Биллиг уже хорошо известен разработчикам приложений в среде Visual Basic for Applications (VBA): его первая книга “VBA и Office 97. Офисное программирование” (в соавторстве с М. И. Дехтярем) пользовалась у них заслуженной популярностью (см. PC Week/RE, № 20/98, с. 58). Отрадно, что новая книга появилась на прилавках даже раньше анонса русской версии Microsoft Office 2000, в то время как предыдущая вышла спустя год после начала продаж MS Office 97. Автор планирует выпустить еще две книги на эту тему, рабочие названия которых “Объекты Office 2000” и “Средства разработчика Office 2000”.
“VBA в Office 2000” не следует рассматривать как второе, обновленное издание первой книги автора по этой же тематике, представляющее собой комплексное пособие из трех достаточно самостоятельных разделов: “Объекты Office 97 и VBA”, “Ядро VBA” и “Офисное программирование” (практические примеры проектов). Нынешняя же книга - существенно расширенный вариант второго раздела предыдущей, в ней, в частности, появились главы, посвященные классам и объектам, вопросам наследования интерфейсов, а также использованию WinAPI.
Такое изменение последовательности изложения темы - сначала введение в программирование, а уже потом переход к самому пакету Office - выглядит, с одной стороны, довольно логично, но с другой - выявляет ряд серьезных методических проблем в освоении программирования в среде MS Office. Именно эти вопросы хотелось бы обсудить далее, учитывая то, что данный инструмент еще довольно новый (отличающийся от традиционных средств разработки) и литературы по нему пока явно недостаточно.
За последние два-три года мы видим достаточно быстрое продвижение MS Office в качестве средства разработки. И в то же время остается неясным ответ на вопрос: кем же и для каких целей будет реально использоваться этот инструмент - конечными пользователями, которые с помощью “малой автоматизации” станут решать свои конкретные задачи, или же профессиональными разработчиками для создания комплексных решений.
MS Office - достаточно специфический инструмент, освоение которого связано с определенными проблемами для обеих упомянутых выше групп пользователей. Первым нужно изучать незнакомый мир программирования, а вторым - функциональные возможности офисных пакетов. Очевидно, что и методическая поддержка должна реализовываться достаточно адресно для каждой группы VBA-разработчиков. Учитывая этот тезис, вернемся к рецензируемой книге.
В одном издании “нельзя объять необъятное”. Однако именно поэтому весьма желательно четкое позиционирование направленности книги, чтобы читатель понял, что он должен изучить, прежде чем читать книгу “VBA в Office 2000”, и какие вопросы программирования остались вне рассмотрения данного издания. То есть, оценив книгу как “необходимое, но не достаточное условие”, было бы полезно во введении сказать, что нужно изучать еще для освоения офисного программирования.
“VBA в Office 2000” является добротным описанием VBA, ориентированным в основном на людей, которые только приступают к глубокому изучению данной системы. Вряд ли это могут быть начинающие разработчики - для освоения книги нужно знание основ программирования. Мне кажется, что она идеально подходит студентам компьютерных специальностей, для которых VBA - это очередной шаг в изучении систем программирования: Си, Delhpi, VBA и т. д. (именно такая последовательность четко прослеживается в подходе автора к описанию VBA). Впрочем, нужно отметить спорность некоторых позиций автора. В частности, было бы логичнее изменить порядок изложения материала, придерживаясь правила “от простого к сложному”: сначала рассказать об общей структуре VBA (главы 7 - 14), а уже потом перейти к более профессиональным аспектам (главы 4 - 6).
Что же касается тех, кого мы называем квалифицированными пользователями и кто хотел бы использовать Office для автоматизации собственной работы, то для них сначала следовало бы доходчиво пояснить, какие задачи автоматизации они смогут выполнять и в какой степени им понадобится VBA.
Мне хотелось бы подчеркнуть, что такой вопрос просто выходит за рамки, обозначенные темой данной книги, и он должен стать предметом отдельного издания. Однако без ответа на него (публикации по этому вопросу практически отсутствуют) даже самое полное описание VBA как бы повисает в воздухе. Поэтому было бы очень полезно начать эту книгу с краткого изложения возможностей для практического применения VBA. Например, перечислив по нарастающей задачи автоматизации с помощью Office:
- настройка среды программ;
- создание макросов (специальных функций среды);
- создание специализированных приложений;
- разработка многопрограммных комплексов, - можно было бы эффектно показать, как, применяя VBA, пользователю удается расширить свои возможности даже при решении первых двух задач по сравнению с использованием встроенных инструментов Office.
Второе замечание также касается “объятия необъятного”, но уже с точки зрения позиционирования VBA среди средств разработки Microsoft. К сожалению, здесь автор повторяет методический просчет, который присутствовал и в предыдущей книге, где VBA представлялся как некий механизм, появившийся неизвестно откуда и существующий сам по себе.
В частности, говоря об Office 2000, практически вообще не упоминается об Office 97 и, как следствие, нет ответа на вопрос: что же нового, с точки зрения разработчика, появилось в Office 2000? Какие ранее недоступные задачи теперь решаются с его помощью (или решаются проще)? Чем отличается VBA 6 от VBA 5?
На последнем вопросе хотелось бы остановиться отдельно, так как стиль изложения материала в книге невольно приводит читателя к мысли о существовании некоего автономного продукта VBA 2000. На самом же деле это принципиально неверно.
Начиная с 5-й версии (в составе Office 97) VBA стал полноправным членом общего семейства VB (точнее, специфической редакцией этого продукта). В версии 6.0 грань, отделявшая VBA от обычного VB, стала еще тоньше.
Из этого можно сделать вывод, что круг потенциальных читателей книги на самом деле гораздо шире того, что очерчен в заголовке и аннотации. Не менее 90% материала книги будет полезно пользователям и “просто VB”, и MS Office 97. Это особенно важно, потому что у нас наблюдается явный дефицит книг по классическим методам программирования. Но для такого позиционирования книги было бы крайне желательно переставить многие акценты. Например, говоря о VB 6, подчеркивать по ходу изложения специфику VBA (тогда стало бы еще заметнее, насколько незначительны их различия).
Завершая обзор данной книги, хотелось бы подчеркнуть ее безусловную полезность для довольно широкого круга разработчиков и пользователей MS Office. И пожелать российским авторам продолжать осваивать тематику офисного программирования.