Visual Basic 6.0 и Office 2000
Андрей Колесов

Рецензия на книгу:
В.А.Биллиг. "VBA в Office 2000. Офисное программирование" — М.: Издательско-торговый дом "Русская Редакция", 1999. - 480 с.: тираж 6 тысяч экз., ISBN 5-7502-0128-7

© 1999, А.Колесов
Исходный, авторский вариант статьи. Рецензия будет опубликована в журнале "КомпьютерПресс"№ 11/99.

Владимир Биллиг уже хорошо известен VBA-разработчикам: его первая книга "VBA и Office 97. Офисное программирование" (в соавторстве с М.И.Дехтярем) пользовалась у них заслуженной популярностью. Отраден факт оперативности выхода книги — она появилась на прилавках даже раньше анонса русской версии MS Office 2000: предыдущая книга вышла спустя год после начала продаж MS Office 97.

Следует сразу подчеркнуть, что "VBA в Office 2000" не является вторым, обновленным изданием первой книги автора по этой же теме. Напомним, что "VBA и Office 97" представляла собой комплексное пособие, которое включало три достаточно самостоятельных раздела: "Объекты Office 97 и VBA", "Ядро VBA" и "Офисное программирование" (практические примеры проектов). Нынешняя же книга представляет собой существенно расширенный вариант второго раздела предыдущей, в ней, в частности, появились главы, посвященные классам и объектам, вопросам наследования интерфейсов, а также использованию WinAPI.

(Владимир Биллиг планирует выпустить в "Русской Редакции" еще две книги в продолжение темы "Офисное программирование", которые имеют рабочие названия "Объекты Office 2000" и "Средства разработчика Office 2000".)

Такое изменение последовательности изложения темы — сначала введение в программирование, а уже потом переход к самому пакету Office — выглядит, с одной стороны, довольно логично, но с другой — четко показывает ряд серьезных методических проблем в освоении программирования в среде MS Office.

1. Совершенно понятно, что в одной книге "нельзя объять необъятное". Однако именно поэтому крайне желательно четкое позиционирование направленности книги, чтобы читатель понял, что он должен изучить до того, как начать читать книгу "VBA в Office 2000", и какие вопросы программирования остались вне зоны внимания данной книги. То есть, оценив книгу как "необходимое, но не достаточное условие" (что вполне естественно для любого издания), было бы очень полезно сказать, что нужно изучать еще для освоения офисного программирования.

В данном случае "VBA в Office 2000" является добротным и довольно эмоциональным описанием VBA, ориентированным на людей, которые только начинают глубокое изучение данной системы. Вряд ли это начинающие разработчики — для освоения книги нужны знания основ программирования. Мне кажется, например, что она бы идеально подошла студентам компьютерных специальностей, для которых VBA — это очередной шаг в изучении систем программирования: C, Delhpi, VBA, ... (именно такая последовательность четко прослеживается в подходе автора к описанию VBA).

(Впрочем, нужно отметить спорность некоторых позиций автора. В частности, было бы логичнее изменить последовательность изложения материала, придерживаясь правила от простого к сложному: сначала рассказать об общей структуре VBA (главы 7-14), а уже потом перейти к более профессиональными аспектам (главы 4-6).)

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

Мне хотелось бы подчеркнуть, что такой вопрос просто выходит за рамки, обозначенные данной книгой, и он должен стать темой отдельного издания. Однако без ответа на него (тут можно только пожалеть о явном недостатке книг на эту тему) даже самое полное описание VBA как бы повисает в воздухе. Поэтому было бы очень полезно начать эту книгу с краткого изложения возможностей для практического применения VBA. Например, перечислив по нарастающей задачи автоматизации с помощью Office:

Можно было бы эффектно показать, как, применяя VBA, пользователю удается расширить свои возможности даже при решении первых двух задач (для них можно использовать и встроенные инструменты Office).

2. Второе замечание также касается вопроса проблемы "объятия необъятного", но с точки зрения позиционирования VBA среди средств разработки Microsoft с учетом динамики их развития во времени. К сожалению, здесь автор повторяет ошибку, которая присутствовала и в предыдущей книге, где VBA представлялся как некий механизм, появившийся неизвестно откуда и существующий сам по себе.

В частности, говоря об Office 2000, практически вообще не упоминается об Office 97 и, как следствие, нет ответа на вопрос: что же нового с точки зрения разработчика появилось в Office 2000? Какие ранее недоступные задачи теперь решаются с его помощью (или решаются проще)? Чем отличается VBA 6 от VBA 5?

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

Начиная еще с прошлой, пятой версии (в Office 97) VBA стал полноправным членом общего семейства VB (точнее специфической редакцией этого продукта). В версии 6.0 грань, отделявшая его от обычного VB, стала еще тоньше.

Из этого можно сделать вывод, что круг потенциальных читателей книги на самом деле гораздо шире, чем это обозначено ее заголовком и аннотацией. Не менее 90 процентов содержимого книги будет полезно и пользователям "просто VB" и пользователям MS Office 97 (ведь переход на Office 2000 произойдет совсем не мгновенно). Данный момент является принципиально важным, так как у нас сегодня виден явный дефицит книг по изложению классических методов программирования. Хотя для такого позиционирования книги было бы крайне желательно переставить многие акценты. Например, говоря именно о VB 6, подчеркивать по ходу изложения специфику VBA (тогда минимальный объем этих различий стал бы еще заметнее).

Завершая обзор данной книги, хотелось бы еще раз подчеркнуть ее безусловную полезность для довольно широкого круга разработчиков и пользователей MS Office. Многие из высказанных замечаний (которые также носят спорный характер) объясняются новизной и обширностью тематики книги. Особо хотелось бы подчеркнуть, что Владимир Арнольдович Биллиг стал первым российским писателем (и фактически остается пока единственным), который начал осваивать тему офисного программирования. И можно только пожелать ему успехов в продолжении этой работы.

В начало статьи