Впервые этот термин мы ввели в нашей предыдущей книжке [В.А. Биллиг, М.И. Дехтярь "VBA и Office 97. Офисное программирование"]. Начнем разговор об офисном программировании со следующих определений. "Программирование - это создание программ" - так говорили мы вчера. "Офисное программирование - это создание документов" - говорим мы сегодня. Документ становится первичным, и программа - лишь его часть. Конечно, изменилось само понятие "документ". Теперь он понимается скорее как объект в объектно-ориентированном программировании - собрание данных разного типа и программ, их обрабатывающих. Под документами Office мы понимаем документы разных типов - рабочие книги Excel, базы данных Access, подшивки Binder и презентации PowerPoint. Конечно, сюда же относятся и документы Word. С любым из этих документов связываются и данные и программы. Например, создавая документ в редакторе Word, можно ограничиться созданием его данных - набором некоторого текста. Но и в этом простейшем случае созданный документ связан со многими стандартными программами, применимыми к нему: проверки орфографии, форматирования и другими. Чаще всего документ Word устроен сложнее - кроме текстов, он включает рисунки, клипы, таблицы, диаграммы, и к нему применимы как стандартные, так и специальные программы, учитывающие его специфику.
В этой книге мы будем употреблять термин "офисное программирование" применительно к любой деятельности по созданию документов в среде Office. Конечно, книга ориентирована на программистов, и потому чаще всего речь будет идти о создании программ на VBA, обрабатывающих данные документа. Вместе с тем такие средства Office, как, например, Excel, предоставляют программисту огромные возможности по обработке его документов, не прибегая к традиционному программированию. Его набор функций обработки финансовой информации, мощные средства для проведения статистического анализа, возможности по решению задач оптимизации, не говоря уж о более традиционных средствах работы с электронными таблицами, - все это поистине впечатляет.
Так и хочется сказать: " Мы другой такой среды не знаем, где так вольно…"
Работая в среде Office, провести грань между программированием и "работой вручную" довольно сложно. Мы даже вводим специальный термин - "программирование без программирования" для описания подобной деятельности разработчика приложений. Целью разработчика является создание исходного документа с широким спектром функциональных возможностей. В дальнейшем с документом должен работать пользователь, цель которого - получение новой информации как результат работы с документом.
Документ предполагает создание хорошо организованных, структурированных данных, но важно и то, что документ должен быть "живым" - с его данными можно работать, анализировать, изменять и получать новые данные в процессе работы. Все создаваемые программные компоненты документа объединяются в одно целое, называемое проектом. Проект является частью документа и не существует вне его. Он хранится вместе с документом, его невозможно отделить от документа. Невозможно создать независимый от документа проект на VBA.
В чем же преимущества офисного программирования? Вот только некоторые из тех, что получает конечный пользователь: