Тайны и секреты компьютера

Орлов Антон

Эта книга предназначена для тех, кто самостоятельно осваивает мир информационных технологий. Программирование в среде Microsoft Office, устройство сетей Internet и Fidonet, работа системы электронной почты, структура системного реестра Windows и файловой системы, строение жидкокристаллических дисплеев и проблема наличия различных кодировок русского языка, — про все это рассказывается в ней. Многообразие тем и легкий стиль изложения сделают ее вашим спутником на долгое время, и вы всегда сможете найти в ней нужную именно в данный момент информацию.

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

http://comptain.nm.ru

От автора

Уважаемые читатели!

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

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

Эта книга не предназначена для того, чтобы читать ее как учебник — подряд от первой страницы до последней. Напротив — она состоит из множества глав на различные темы, среди которых каждый найдет себе то, что полезно и интересно именно ему. Она может стать вам спутником на долгое время, и всякий раз вы будете находить в ней что-нибудь нужное вам в данный момент. Приобретая ее, вы как бы приобретаете сразу несколько книг под одной обложкой: и про программирование в Word, и про различные аспекты устройства и работы компьютерных систем, и про создание сайтов. Сложные главы, посвященные непростым в изложении и понимании технологиям вроде маршрутизации в сетях и устройству жестких дисков, сочетаются в ней с материалами, доступными практически всем, например, рассказом о сайтостроении или секретными приемам работы в Word. Поэтому, приобретя эту книгу сегодня, вы откроете потом ее еще не раз, когда вам будет нужно срочно узнать что-нибудь, что вы нигде больше не смогли найти.

Создавая книгу, я постарался максимально насытить ее информацией. Однако, разумеется, мир компьютеров значительно больше, чем может вместиться даже в 400 с небольшим страниц. Поэтому эта книга — лишь введение ко всем описанным в ней темам. Лишь краткое изложение основ. Но зато, прочитав ее и поняв все написанное, вы уже не будете чувствовать себя гостем в мире компьютеров, а сможете читать профессиональные компьютерные статьи и книги уже на равных с их авторами. Для вас не будут секретами такие слова, как «классы», «обьекты», «тэги», «скрипты», "таблица разделов", «протокол», «порт». Вы не найдете здесь пошагового описания восстановления данных на жестком диске — но зато потом легко поймете любую статью на эту тему.

Часть I. ОСНОВЫ ПРОГРАММИРОВАНИЯ ДЛЯ

OFFICE

Первая часть книги посвящена весьма интересной теме — созданию программ, работающих в среде текстового редактора Microsoft Word. Нет нужды говорить о его популярности в нашей стране, однако, к сожалению, немногие пользователи знают и применяют в своей деятельности возможности встроенного в Microsoft Office языка программирования Visual Basic for Applications, сокращенно именуемом VBA. А ведь с его помощью можно научить программы из пакета Microsoft Office выполнять практически все, что только может потребоваться пользователю. Более того, VBA — вполне полнофункциональный язык программирования, с помощью которого можно создавать законченные и работоспособные программы, как облегчающие работу с компонентами Microsoft Office, так и предназначенные для проведения расчетов, обработки данных.

Но самое главное — на VBA могут создавать программы даже те, кто ранее никогда не занимался программированием, причем для этого не потребуются ни толстые книги, ни дорогие курсы обучения. Необходимо лишь уметь думать: наблюдать, исследовать, ставить эксперименты, делать выводы, — проявлять способности к научному подходу.

Для написания программ на VBA вам не потребуются многостраничные руководства. Лучше всего даже, чтобы они появились у Вас тогда, когда Вы освоите по меньшей мере треть или даже половину возможностей этого языка, и тогда они будут прочитаны Вами как захватывающий детектив, а не как занудные учебники. Более того, тогда оставшиеся две трети информации о возможностях VBA будут усвоены вами гораздо быстрее и легче. Кроме того, создавая программы на этом языке, Вы получите прекрасную возможность смоделировать в данном процесе способы подхода к этому миру со стороны исследователя, экспериментатора, ученого, научиться принципам научного подхода к исследованию различных явлений или вспомнить их. И необьятный простор открывает такая, казалось бы, обыкновенная вещь, как Microsoft Office и его средства разработки программ для обучения и воспитания подрастающего поколения, — программирование в среде этого пакета программ является превосходным средством для выработки у учеников самостоятельности в исследованиях, способности сопоставлять различные факты и анализировать информацию, — всего того, что нужно разумному человеку или даже будущему ученому.

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

Программы на VBA — макросы — можно создавать для любой программы пакета Microsoft Office — для Word, Excel, Access, PowerPoint и даже Outlook. В этой книге будет рассмотрен процесс создания макросов для Microsoft Word, так как, во-первых, с этой программой приходится работать практически любому пользователю персонального компьютера, а, во-вторых, для Word создавать их несколько легче и проще, чем для других компонентов Microsoft Office. Научившись работать с VBA в Word, вам будет довольно просто перейти к программированию для остальных компонентов Office.

Глава 1. Средства программирования на VBA для Word: общий обзор

Создание программы

В отличие от других средств разработки программного обеспечения, где единственным способом создания новой программы является написание ее кода и создание в визуальных редакторах диалоговых окон или использование уже готовых фрагментов кода других программ, в VBA есть уникальное средство разработки, не присутствующее больше практически нигде и позволяющее быстро научиться создавать простые макросы для компонентов Office, в том числе и для Microsoft Word, без использования описаний языка. Это средство — так называемая "запись макросов". При работе в Word можно включить специальный режим записи макросов, и тогда все действия пользователя в редакторе будут автоматически «переводиться» на язык VBA и записываться в виде текста программы. Этот текст можно потом изучить для выяснения синтаксиса и устройства языка, а также необходимым образом его модифицировать.

Для записи макроса в Word надо выбрать из меню «Сервис» пункт «Макросы», а затем из выпадающего подменю — пункт "Начать запись".

Документы Word — собственно документы с расширением".doc" и шаблоны документов с расширением".dot" — устроены так, что могут хранить в себе программы. Каждую программу, хранящуюся в документе, может вызывать на исполнение либо кнопка на панели инструментов, либо сочетание клавиш, либо пункт меню, либо другая программа. Возможно любое сочетание способов вызовов. Поэтому перед началом записи макроса пользователю предлагается сразу назначить записываемому макросу способ его вызова (рис. 1.1).

Глава 2. Основы языка Visual Basic for Applications

Для полного описания возможностей VBA потребовалось бы несколько толстых книг. Поэтому я не буду описывать все команды VBA, рассказывать об их формате и требуемых параметрах — про это очень подробно рассказано в справке, да и средства подсказки тоже не дадут ошибиться. Если необходимо узнать, какая команда позволяет программно реализовать ту или иную возможность Word, то можно воспользоваться средством записи макросов, а потом почитать в справке о каждой записанной команде.

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

События, методы, свойства

Когда-то давным-давно программы, написанные и работавшие тогда еще под MS-DOS, получали от пользователя данные, обрабатывали их и выдавали затем результат. Почти любая программа предусматривала в своей работе период ввода данных, период обработки, период выдачи результата. Подобные действия были принципом работы Dos-овских программ. И программирование их называлось структурным — надо было строго и последовательно разрабатывать алгоритм, реализовывать заданный порядок действий программы, в который в процессе работы пользователь в момент, для этого не предназначенный, вмешаться не мог, разве только принудительно остановив программу.

Глава 3. Создание первой макрокоманды

В предыдущих двух главах рассказывалась о языке Visual Basic for Applications (сокращенно — VBA), его возможностях и правилах, а также о Редакторе VBA — средстве создания программ на этом языке в среде Microsoft Office. Теперь же на наглядном примере рассмотрим процесс создания простой макрокоманды для Word, подробно обьясняя и иллюстрируя все шаги этого процесса.

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

У программы Microsoft Word есть огромное количество возможностей по работе с текстом. И огромные возможности по замене и поиску, и средства помещения в документ графики, не уступающие многим современным издательским системам, и средства оформления документов красивыми шрифтами и границами… Казалось бы — что еще надо, все необходимые возможности уже учтены создателями Word? Однако иногда перед пользователями встают такие задачи, разрешить которые с помощью стандартных средств Word очень трудно, а то и вовсе невозможно. Но для этого в Word, как, впрочем, и во всех компонентах пакета Microsoft Office, как раз и есть очень мощное средство разрешения подобных проблем: встроенный язык программирования.

Вот наглядный пример, когда именно написание программы-макроса — единственный более-менее достойный выход из проблемы.

Глава 4. Пусть программа с вами говорит…

Продолжим изучение программирования на Visual Basic for Applications (напомним — сокращенно VBA). Подробные описания теперь уже не нужны — достаточно лишь заострения внимания на некоторых "подводных камнях" или скрытых возможностях.

В этой главе речь пойдет о так называемых "пользовательских формах". Формально они являются "нестандартными диалоговыми окнами" макросов, наподобие диалоговых окон Word, но по сути с их помощью можно создавать настоящие программы, подобные компилируемым программам для Windows, которые будут отличаться от них лишь тем, что для их работы необходим Microsoft Word. К сожалению, формы нельзя создавать с помощью средства записи макросов, но все средства создания форм снабжены подробной справкой, и на ее основе можно довольно быстро научиться работать с формами.

Для создания формы необходимо в любом доступном проекте (шаблоне или документе) из контекстного меню правой кнопки мыши в Менеджере проектов выбрать Вставить-UserForm.

Форма состоит из

элементов

-различных средств ввода и отображения информации (командных кнопок, мест для ввода текста, мест для вывода текста, переключателей и флажков и др.), которые могут на ней располагаться. У каждого элемента есть

свойства

-ширина, высота, цвет, особенности внешнего вида и поведения. Более подробно об элементах форм рассказывалось во второй главе.

Основное отличие программного кода, обслуживающего формы, от кода в обычных модулях заключается в принципе программирования. В то время как программа на VBA вроде той, что была нами совместно написана в предыдущей главе, чаще всего выполняется «последовательно», — то есть все ее команды выполняются одна за другой, и их порядок выполнения изменяется лишь в зависимости от операторов условного и безусловного перехода «If» и «Goto», форма "реагирует на события" — то есть каждому элементу формы может быть поставлена в соответствие определенная отдельная программа, выполняющая нужные действия.