BiVANT   Книги     

Предлагаем Вам главы из еще не появившейся на книжных прилавках  книги В.А. Биллига "Мир объектов Excel 2000". Начнем публикацию с заключения к книге, поскольку, на наш взгляд, оно достаточно четко характеризует нынешнее положение дел в современной индустрии программирования на базе Microsoft Office. Возможно после прочтения этого раздела, Вам удастся новым взглядом посмотреть на Ваши документы и существенно расширить их функциональность, используя средства офисного программирования, всегда имеющиеся у Вас под рукой, если Вы работаете в Microsoft Office.

Володя у зеркала.jpg (34889 bytes)Биллиг В.А  "Мир объектов Exсel 2000".            

                      Заключение

В 1998 году, работая над книгой «VBA и Office 97», я предложил использовать в ее названии введенный в книге новый термин «Офисное программирование». Последующие мои книги, посвященные важному направлению современного программирования, выходили с этим же подзаголовком. Эта книга уже четвертая в этой серии. Сам термин «Офисное программирование» прижился и теперь широко используется в различных контекстах, а не только в названиях моих книг.

Завершая, видимо, работу над книгами этой серии, хотелось бы высказать свою точку зрения на перспективы развития данного направления. В чем я вижу достоинства этого направления? Коротко перечислю то, что я уже неоднократно говорил в своих статьях и книгах:

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

·         Возможность настройки документа на решение специфических задач. Для обычных документов Office 2000 эта возможность реализуется благодаря встроенному языку VBA, для Web-документов – языку VBScript.

·         Возможность программисту начинать свою работу не с нуля, а на основе созданного руками документа. 

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

·         Офисное программирование прекрасно подходит для обучения в школах и вузах прикладным основам информатики. Широкий набор документов разного типа, встроенный язык программирования, базы данных, графические средства отображения информации, различные инструменты – статистические, лингвистические, оптимизационные, все это является естественной частью офисного программирования.

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

Как и в какую сторону развивается офисное программирование? Прежде всего, в сторону интернет. Лозунг дня – документы теперь создаются в сети и для работы в сети. То, что в свое время формат Html стал родным форматом документов среды Office, было поистине революционным достижением в этом направлении. Действительно, исчезла разница в подготовке документа для его просмотра на локальном компьютере или в сети. Но сегодня возможностей работы в сети со статическими документами явно недостаточно. Документы, предназначенные для совместной работы, должны быть интерактивными, взаимодействовать с базой данных.

Хочется отметить важную роль, которую сыграли компоненты  OWC в развитии интерактивности Web-документов. Дело даже не только в том, что теперь Web-страницы могут обладать функциональностью Excel, и не в том, что эти компоненты можно программно настраивать под потребности пользователя. Хотя все это крайне важно само по себе, но более важен применяемый подход, основанный на использовании COM-объектов, располагаемых на Web-страницах. Такие объекты с нужной функциональностью можно создавать самому, придавая требуемую интерактивность Web-документу. Должен заметить, что, по моему мнению, компоненты OWC, а главное, возможности программной работы с ними еще не оценены в полной мере. Они заслуживают более широкого применения.      

Несколько слов о Web-программировании. Начав сравнительно недавно заниматься созданием Web-приложений, я для себя понял, что между офисным программированием и Web-программированием нет большой разницы. Для меня Web-узел это обычный документ такой же как, например, рабочая книга Excel со своими страницами. И программная настройка этого документа для придания ему нужной интерактивности ведется такими же приемами, как и для других офисных документов. И здесь используется объектная модель документа и встроенный язык программирования. Поэтому для меня Web-программирование является частью офисного программирования.

О термине «Web-программирование». Существует ли такой термин? Если нет, то его следует, как мне кажется, ввести. 

На этом ставлю точку. Жду писем по адресу:

Vladimir.Billig@tversu.ru  

Предисловие

Это странная книга.

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

Другая  странность в  том, что  книга планировалась совсем под другим названием. Но реализовать все то, что задумывалось, не удалось по разным причинам. А из того, что было написано и предлагается Вашему вниманию, большая часть так или иначе посвящена Excel – основам программирования в Excel, связи Excel с базами данных и другими источниками данных, анализу офисной деятельности, выполняемого средствами Excel, созданию интерактивных документов в Excel,  приданию Web-страницам функциональности Excel. Отдавая должное этому замечательному приложению, я и решил назвать книгу «Мир объектов Excel 2000».

Почему не просто « Мир Excel 2000»? Видимо, потому что я предпочитаю смотреть на все, что происходит в Excel, с объектной точки зрения, рассматривать все происходящее как действия над объектами. Да и описанию самих объектов в этой книге уделяется достаточно много внимания. При этом в круг рассмотрения входят не только объекты самого Excel. Мир объектов Excel более широк. Так или иначе, в рассмотрении появляются общие объекты Office 2000, объекты других приложений, в книге, например, много внимания уделяется связи Excel и Access. Помимо объектов Excel в книге подробно рассматриваются еще две группы объектов – ADO и OWC.   Объекты ADO, позволяющие организовать доступ к базам данных, несомненно, входят в мир Excel, поскольку, чаще всего, Excel является тем приложением, где обрабатываются данные, хранимые в различных  источниках. Компоненты OWC, обладающие функциональностью Excel , - их объектная модель – это тоже часть мира объектов Excel. Без этих объектов не обойтись, если Ваше решение переносится в интранет, и Вы захотите создать Web-узел, страницы которого обладают функциональностью Excel документов.

Продолжая тему «странности», замечу, что крайне важные для данной книги главы, посвященные описанию объектов, вынесены на диск. Внешняя причина такого решения состояла в том, что это позволило существенно сократить печатный текст книги и, тем самым уменьшить ее стоимость, что входило в задумку редакции. Автор, хотя и не сразу, согласился с доводами редакции, полагая, что такое решение позволит читателям использовать эти главы как часть справочной системы в их повседневной работе на компьютере.

 Что же можно найти в этой книге, и кому она предназначена?

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

Первые две главы книги посвящены началам программирования в Excel. Они, надеюсь, доступны опытным пользователям и начинающим программистам. Думаю, что их с интересом прочтут и те, кто занимается обучением программированию в любой среде программирования. Я высказываю и пытаюсь обосновать здесь «крамольную» мысль о том, что Excel является прекрасной средой начального обучению программированию в школе и в вузах. Надеюсь, что и опытные программисты найдут здесь кое-что полезное для себя, особенно, во второй главе, адресованной математикам.

Глава 3 дает описание объектной модели Excel. Подробно рассмотрены все основные действующие лица этой модели – объекты Application, WorkBook, WorkSheet, Chart, Range и другие. В печатном тексте дается лишь краткое изложение этой темы, а полный текст главы вынесен на диск. Там же можно найти и многочисленные примеры, сопровождающие описание объектов. Понятно, что при раскрытии этой темы без технических деталей не обойтись, поэтому чтение главы довольно утомительно, но как справочный материал, она, надеюсь, будет весьма полезной.

Базы данных и другие источники данных – это одна из ведущих тем этой книги. Глава 4 «Excel и базы данных» начинает эту тему. В этой же главе дается знакомство с приложением Access, на примере показано, как строится база данных в Access, изучаются связи Excel и Access.

Пятая и шестая главы книги посвящены объектам ADO. Уже то, что этим объектам посвящены две главы, говорит о степени подробности рассмотрения этой темы. Объекты ADO задают интерфейс между самыми разнообразными источниками данных и клиентским приложением, где эти данные обрабатываются. Таким приложением совсем не обязательно должен быть Excel, сфера применения объектов ADO значительно шире. Но Excel это одна из наиболее подходящих кандидатур на роль такого клиентского приложения. Чтение этих глав требует определенной подготовки и ориентированно на более продвинутых программистов. Полный текст этих глав вынесен на диск.

Седьмая глава книги посвящена разработке интерактивных документов. Она носит в определенном смысле центральный характер. В ней рассматривается весь процесс создания интерактивного документа Excel. Этот документ можно считать примером создаваемого в Excel типичного решения, в котором программный проект играет определяющую роль. Предлагаемое решение использует базу данных Access и объекты ADO для организации связи с базой данных.  Здесь же обсуждается и ряд других вопросов, важных в практической работе, начиная от организации интерфейса пользователя до получения печатной формы документа.

Глава 8 посвящена вопросам, возникающим при анализе офисной деятельности. В ней делается попытка сочетать содержательное рассмотрение, например, рассмотрение того, как проводить анализ типа «Что, если …» с рассмотрением средств Excel, используемых в таком анализе. Здесь рассматриваются сводные таблицы и сводные диаграммы, сценарии, методы прогнозирования и многое другое.

В девятой главе подробно обсуждается создание проекта под названием «MasterF». С содержательной точки зрения рассматривается задача оптимального выбора инвестиционных вложений. В проектном решении используется мощный встроенный инструмент Excel - решатель Solver, позволяющий решать сложные оптимизационные задачи. Данный проект демонстрирует построение надстройки над  встроенным инструментарием Excel. Сам проект, естественно, находится на диске. Полагаю, что он может иметь не только учебную, но и практическую ценность для тех, кто решает подобные задачи.

В главе 10 в рассмотрение вводятся новые объекты, тесно связанные с Excel. В этой главе рассматриваются Office Web Components – компоненты OWC. По моему мнению, эти компоненты являются лучшим продуктом, созданным Microsoft в области компонентного программирования. Они дают возможность добавить функциональность Excel в свои решения без использования самого Excel и других приложений Office 2000. Основное предназначение этих компонент – обеспечение корпоративной работы с документами в интрасетях, что позволяет создавать интерактивные страницы Web-узлов, обладающие функциональностью Excel. При рассмотрении этих компонент большое внимание уделяется программной работе с этими компонентами, возможности программной настройки Web-документов, использующих эти компоненты.

 Глава 11 посвящена введению в Web-программирование. Я подробно рассматриваю процесс создания интерактивного Web-документа. Ключевым словом здесь является «интерактивность», поскольку, по большому счету, вся эта книга о том, как придать нужную интерактивность создаваемым документам.  Глава носит вполне самостоятельный характер, но, по сути, является естественным продолжением двух тем, рассматриваемых в главах 7 и 10, поскольку с одной стороны речь идет о создании интерактивного документа, с другой – документа Web, страницы которого могут обладать функциональностью Excel. Замечу, что при рассмотрении вопросов создания интерактивного Web-документа, я ограничиваюсь рассмотрением программных продуктов от Microsoft. Так что роль Web-сервера, выполняющего сценарии на серверной стороне, играет IISInternet Information Server, соответствующие страницы узла являются ASP-страницами, а обозреватель, выполняющий код на клиентской стороне, это Internet Explorer.  

Главу 12 я решил посвятить описанию проектов, выполненных студентами, которым я читал курс «Офисное программирование». Все проекты, о которых идет речь в этой главе, вынесены на диск, их программный код открыт и доступен для изучения. Работы студентов расширяют множество примеров, рассмотренных в книге, и являются хорошей иллюстрацией возможностей офисного программирования. В частности, на диске представлена коллекция, включающая 21 игру. Все игры ориентированы, в первую очередь, на школьников, но не только на них. Большинство игр относится к классу «развивающих» игр, направленных на развитие логического мышления. Среди игр есть вариации известных игр – Lines, Tetris, Digger, игры-головоломки, известная карточная игра «Подкидной дурак» и другие игры.  

 Неотъемлемой частью данной книги является прилагаемый к ней диск. Диск в этой книге играет важную роль. Непонятно даже, то ли диск является дополнением к тексту книги, то ли текст является дополнением к диску. Так что, если хотите, книгу можно рассматривать как обложку, под которой находится диск. Связано это с тем, что впервые в моей практике большая часть глав вынесена на диск и, следовательно, доступна в электронном виде. На диске содержатся и все примеры, которые появляются в главах этой книги. Отдельный раздел диска содержит работы студентов, прежде всего сборник, содержащий 21 игру. Как мне кажется, этот сборник игр имеет самостоятельную ценность и получит широкое распространение.

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

Завершая предисловие, хочу сказать, что предлагаемая книга идейно связана с уже упомянутыми мной книгами серии «Офисное программирование». На эти книги я ссылаюсь в тексте многих глав:

1- «VBA в Office 2000. Офисное программирование,

2- «Средства разработки VBA-программиста». Офисное программирование.

Хорошо, если читатели знакомы с этими книгами, но это не обязательное требование. Читать данную книгу можно вполне самостоятельно. Скажу даже, что я стараюсь, по возможности, сделать каждую главу доступной для независимого чтения.

Связаться с автором можно по адресу: Vladimir.Billig@tversu.ru

 

Глава 1 Начала  программирования в Excel    

    Excel, по-видимому, является основным приложением, которое используют программисты для создания офисных документов. Я посвящу важной теме создания офисных документов в Excel несколько глав. Но начать эту тему хочу с обсуждения того, как можно учить основам программирования в Excel. Прежде всего, это интересно мне самому, как преподавателю. Это может быть интересно и остальным, поскольку все имеют по этому вопросу свою точку зрения, так как сами в свое время учились программированию. Важно и то, что задачи, которые я собираюсь рассмотреть в этой главе, составляют некий фундамент, полезный при решении многих  задач, возникающих в ходе дальнейшей работы.

Чтобы заинтриговать читателя, я выскажу спорное утверждение – «Excel является прекрасной средой для начального обучения программированию в школе и вузе». Попробую привести 10 пунктов, по каждому из которых можно привести ряд доводов в обоснование этого утверждения:

1.       Представление данных.

2.       Инкапсуляция данных и вычислений.

3.       Отображение результатов.

4.       Машина вычислений.

5.       Рекурсивные вычисления.

6.       Работа с массивами.

7.       Библиотека функций.

8.       Оптимизация.

9.       Хранение данных.

10.   Программирование на VBA.

Рассмотрим, в чем состоят достоинства  Excel для  каждого из этих пунктов.

Представление данных

Понятие простой переменной является одним из первых и фундаментальных понятий программирования. Где-то есть высказывание одного из классиков – «Если Вы понимаете, что такое переменная, то половина пути в понимании программирования уже пройдена». Говоря о переменных, новичку  нужно объяснить, что суть переменной определяется тройкой -  именем, значением и типом переменной. Кроме того,  в программировании в отличие от математики, говоря о переменных, полезно связать это понятие с памятью, в которой хранится переменная. Начиная учить программированию школьников или людей, далеких от математики, я часто обращался к аналогии и приводил в качестве аналога переменной ящичек, на котором написано имя, внутри которого хранится значение, а тип ящичка, например круглый или прямоугольный, позволяет положить в ящичек только значения определенного типа. Память можно рассматривать, как совокупность таких ящичков. Такая аналогия хорошо работает и в Excel, где рабочий лист естественным образом можно представлять как некоторый вид подобной памяти.

Говоря более строго, рабочий лист Excel представляет таблицу уже готовых именованных переменных, а книга Excel представляет массив таких таблиц, так что для работы программиста изначально доступно структурированное множество именованных переменных. По этой причине проблема создания переменных и их именования в Excel не возникает, что особенно полезно на первых порах обучения. Поскольку не всегда удобно пользоваться стандартными именами, то, зачастую, приходится давать переменным собственные имена. В этом случае лучше, если собственные имена имеют длину не менее четырех символов, чтобы  не было  пересечения со стандартным множеством имен.

Говоря о значении переменной – ее важнейшем атрибуте, следует признать, что большинство операций над значениями – ввод, вычисление, наблюдение – выполняются в Excel в большинстве случаев удивительно просто. Главное достоинство состоит в том, что вся память открыта, а, следовательно, значения всех переменных открыты для чтения и записи, если, конечно, не приняты специальные меры по защите и скрытию переменных. Дать переменной значение становится совершенно простым и естественным делом, о котором и говорить нечего – бери и вводи значение в нужную ячейку.

Несколько сложнее обстоит дело с типами переменных в Excel. Вообще говоря, нельзя приписать тип ячейке Excel. Но для ячеек есть близкое к типу понятие формата, так что каждой переменной можно приписать определенный формат – числовой, текстовый, формат даты  и другие. Заметим,  Excel не следит строго за соблюдением форматов, так что допустим ввод строкового значения в ячейку, для которой указан числовой формат.

Хочу обратить внимание на одну приятную особенность работы с переменными. Часто полезно разделять переменные  не только по типу. Например, всегда в задачах полезно выделять входные (исходные) переменные, выходные (результаты) и промежуточные переменные. Благодаря возможностям форматирования, в Excel такое выделение становится возможным и наглядным. Переменные одного вида можно действительно сгруппировать на рабочем листе и для каждой группы можно иметь свой формат – границы, цвет фона и прочие атрибуты форматирования, выделяющие каждую группу. Тут же я хотел бы отметить и еще некоторые дополнительные возможности работы с переменными. Поскольку имя отделено от самой переменной, то часто полезно наряду с именем иметь и метку, записанную в соседней ячейке. При необходимости можно дать более подробную информацию о каждой переменной, связав с ней (с ячейкой) специальный комментарий.

Наконец, нельзя не отметить, что исчезает необходимость  введения на первых занятиях достаточно сложного понятия операторов ввода – вывода. Ввод – вывод значений переменных, наблюдение в Excel за всеми переменными становится простым и естественным делом.

        Начало главы 1                           

Hosted by uCoz