Офисное программирование
ктн Биллиг Владимир Арнольдович,
Тверской госуниверситет.
Термин "Офисное программирование", пожалуй, впервые был введен в книге, которую я написал совместно с моим коллегой М.И. Дехтярем [В.А. Биллиг, М.И. Дехтярь "VBA и Office 97. Офисное программирование"]. После этой книги вышли еще три книги, посвященные этому направлению в программировании. В данном докладе обсуждаются суть и особенности офисного программирования. Выдвигается гипотеза о том, что офисное программирование может служить прекрасной базой для начального изучения информатики и программирования в школе и вузе. Автор пытается обосновать это утверждение.
Начну разговор об офисном программировании со следующих определений. "Программирование - это создание программ" - так говорили мы вчера. "Офисное программирование - это создание документов" - говорим мы сегодня. Документ становится первичным, и программа - лишь его часть. Конечно, изменилось само понятие "документ". Теперь он понимается скорее как объект в объектно-ориентированном программировании - собрание данных разного типа и программ, их обрабатывающих. Под документами Office мы понимаем документы разных типов - рабочие книги Excel, базы данных Access, подшивки Binder и презентации PowerPoint. Конечно, сюда же относятся и документы Word. С любым из этих документов связываются и данные и программы. Например, создавая документ в редакторе Word, можно ограничиться созданием его данных - набором некоторого текста. Но и в этом простейшем случае созданный документ связан со многими стандартными программами, применимыми к нему: проверки орфографии, форматирования и другими. Чаще всего, документ Word устроен сложнее - кроме текстов, он включает рисунки, клипы, таблицы, диаграммы, и к нему применимы как стандартные, так и специальные программы, учитывающие его специфику.
Работая в среде Office, провести грань между программированием и "работой вручную" довольно сложно. Целью разработчика является создание исходного документа с широким спектром функциональных возможностей. В дальнейшем с документом должен работать пользователь, цель которого - получение новой информации как результат работы с документом.
Документ предполагает создание хорошо организованных, структурированных данных, но важно и то, что документ должен быть "живым" - с его данными можно работать, анализировать, изменять и получать новые данные в процессе работы. Все создаваемые программные компоненты документа объединяются в одно целое, называемое проектом. Проект является частью документа и не существует вне него. Он хранится вместе с документом, его невозможно отделить от документа. Невозможно создать независимый от документа проект на VBA.
В чем же преимущества офисного программирования? Вот только некоторые из тех, что получает конечный пользователь:
- Пользователь всегда работает в единой офисной среде независимо от того, с каким документом он работает в данный момент, и какой программист разрабатывал этот документ.
- Большинство доступных при работе с документами функций являются общими для всех документов, поскольку их предоставляет сама офисная среда. Здесь же отметим единый стиль интерфейса разных документов.
- Пользователь сам, не будучи программистом, способен создавать простые виды документов, постепенно совершенствуясь в этой деятельности.
- Идеи визуального и событийно-управляемого программирования получают в офисном программировании свое естественное развитие, а значит, пользователь в полной мере берет в руки управление своим документом. Программист, предоставляя средства обработки документа, может даже и не подозревать, чего может добиться с их помощью пользователь, понимающий в своем деле.
А есть ли преимущества у программиста, работающего в Office? Есть, и их, пожалуй, не меньше, чем у пользователя:
- В его распоряжении мощная интегрированная среда: большинство повседневных задач становятся для него простыми, - чтобы их решить, зачастую достаточно стандартных средств.
- Там, где стандартных средств не хватает, доступен язык программирования - VBA, существенная особенность которого - возможность работы с объектами любого из приложений.
Office- это среда разработки, отвечающая современному принципу: "Простые задачи должны решаться просто". Мощность среды определяется тем, какие задачи для нее являются простыми. В этом отношении Office уникален - круг "простых" для него задач весьма широк. Одна из целей этой книги - показать, что задачи, традиционно считающиеся сложными, программист может успешно решить в среде Office.
Если говорить о сложных задачах, то, естественно, есть такие задачи, для которых стандартных средств Office и языка VBA недостаточно. Вообще должны одновременно существовать различные программные среды, операционные системы, любимые теми или иными программистами. Лучшая позиция программиста должна состоять не в противопоставлении, а в сотрудничестве. Именно поэтому мне кажутся важными идеи компонентного программирования, где вырабатывается стандарт взаимодействие компонент, создаваемых в разных программных средах, на разных языках, на разных платформах и находящихся на разных машинах.
Выскажу и попытаюсь обосновать спорное утверждение - "для начального обучения программированию в школе и вузе прекрасной средой является Excel с встроенным языком программирования VBA". Предлагаю рассмотреть 10 пунктов, по каждому из которых можно привести ряд доводов в обоснование этого утверждения:
- Представление данных;
- Инкапсуляция данных и вычислений;
- Отображение результатов;
- Машина вычислений;
- Рекуррентные вычисления;
- Работа с массивами;
- Библиотеки функций;
- Оптимизация;
- Хранение данных и работа с базами данных;
- Программирование на VBA.
Литература:
- Биллиг В.А., Дехтярь М.И. "VBA и Office 97. Офисное программирование". М. Изд. "Русская Редакция" 1998 г., 673 стр.
- Биллиг В.А. "VBA в Office 2000. Офисное программирование". М. Изд. "Русская Редакция" 1999 г., 480 стр.
- Биллиг В.А. "Средства разработки VBA-программиста. Офисное программирование". М. Изд. "Русская Редакция" 2001 г., 480 стр.
- Биллиг В.А. "Мир объектов Excel 2000". М. Изд. "Русская Редакция" 2001 г., 240 стр. +CD.
Презентация к докладу (MSPowerPoint, 616Kb)...
Обсудить на форуме...
|