Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Orlov_VBA

.pdf
Скачиваний:
23
Добавлен:
13.03.2016
Размер:
7.79 Mб
Скачать

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

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

На сайте Microsoft есть Форум для разработчиков программ на VBA - (http://www.microsoft.ru/offext/officedev/newsgroup. Посетите его, если желаете получить ответ на какой-

нибудь вопрос или, наоборот, поделиться своими наработками с сетевым сообществом.

** *

Конечно, в этом кратком обзоре нельзя рассказать обо всех созданных к настоящему времени макросах. Однако и описанные здесь программы серьезно помогут вам в работе. А если вы все же решите начать самостоятельно писать программы на Visual Basic for Applications, то, поисследовав макросы из этого обзора, вы узнаете очень много полезного... А, научившись программировать на этом языке, вы можете даже выиграть приз!

Удачи вам в работе - и в программировании!

Напутствие

** *

Создавая программы для Microsoft Office, вы сможете на опыте получить представление практически обо всех современных принципах программирования: как структурных - основанных на последовательном выполнении всех команд программы, так и "событийных", согласно которым программа должна реагировать соответствующим образом на различные действия пользователя. В современном программировании используются оба этих принципа: интерфейс программ построен по принципу реакции на события, а функции, выполняемые программой - по принципу независимой работы. Например, графический редактор Paint, да и тот же текстовый процессор Word в большей своей части являются приложениями, управляемыми событиями - действиями пользователя; а, скажем, программы дефрагментации или проверки диска работают почти независимо от пользователя, он только должен задать им начальные параметры. В Visual Basic for Applications можно писать как программы, управляемые событиями (посредством разработки форм), так и работающие последовательно и независимо (используя только модули), а также, разумеется, и приложения, сочетающие в себе оба этих принципа.

Visual Basic for Applications может служить не только полноценной средой разработки приложений, работающих в Microsoft Office, но и как бы "учебным центром" по освоению принципов и различных приемов современного программирования. Работа с системным реестром, с файловой системой и даже со встроенными в Windows функциями программирования API, - все это вы сможете изучить на опыте, используя Visual Basic for Applications, причем сделать это Вам будет значительно легче, чем если бы вы сразу начали учиться программировать на Delphi или Visual Basic for Windows. Средство записи макросов, возможность легкого анализа уже написанных программ (так как фактически любая программа на Visual Basic for Applications распространяется вместе со своим исходным текстом), русский интерфейс редактора, большая и четко написанная справка, обилие примеров, - все это очень помогает в освоении этого языка и делает возможным его самостоятельное изучение - даже без использования дополнительной литературы. Другие языки программирования так освоить практически невозможно. Кроме того, редактор Visual Basic for Applications обладает большими возможностями по коррекции ошибок, и поэтому программа на этом языке вряд ли вызовет ошибку системы и необходимость перезагрузки, если только не увлекаться вызовом функций API.

Если Вы научитесь программировать на Visual Basic for Applications, поймете принципы разработки алгоритмов и основные приемы программирования, освоите среду написания программ - редактор Visual Basic for Applications, то для Вас практически не составит труда начать создавать программы на Visual Basic for Windows. У этого языка абсолютно такой же синтаксис, такая же среда разработки с контекстной справкой и пошаговыми подсказками, на первый взгляд он отличается от Visual Basic for Applications разве что набором доступных встроенных процедур и функций и отсутствием возможности записи макросов. Безусловно, есть и более глубокие различия, но при создании не очень сложных программ они не будут иметь большого значения. Вы сможете легко освоить средство разработки программ Delphi, однако логика языка Pascal, лежащего в основе Delphi, несколько отличается от логики Visual Basic. Однако и среда разработки, и общие принципы программирования в Delphi те же. Несколько труднее будет освоить C++ и его производные из-за серьезно отличающегося синтаксиса и высокой сложности этого языка, но это не всегда необходимо, - подавляющее большинство проектов программ можно реализовать на Visual Basic или Delphi.

** *

Среди тех, кто занимается программированием уже много лет и достиг в этом деле определенных высот, весьма распространено мнение, что Visual Basic for Applications, да и просто Visual Basic - языки, на которых нельзя создать быстро и хорошо работающие программы. В определенной степени это соответствует действительности: программы на Visual Basic обычно работают несколько медленнее и занимают больше места, чем аналогичные им программы на С++, на Visual Basic весьма проблематично решение некоторых программистских задач и приемов. Поэтому профессиональные программисты часто считают, что Visual Basic - язык для дилетантов в программировании, а любой уважающий себя специалист в области информационных технологий обязан знать и использовать такие языки, как С++ или ассемблер. Но не следует забывать, что изначальное предназначение компьютерных технологий - помощь человеку в обработке и создании информации, а отнюдь не "служение самим себе", своему дальнейшему развитию. Поэтому основная функция большинства компьютерных программ - получение

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

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

На вопрос: "Какой язык программирования лучше всего?" стоит отвечать так: "Тот, на котором ты можешь лучше всего писать программы и реализовывать свои проекты." Проще всего освоить Visual Basic и Delphi. И поэтому не стоит так уж стремиться обязательно знать ассемблер, выучить все функции API и жалеть, что не можешь вводить программы сразу в машинных кодах, - лучше повнимательнее изучить более простой язык даже вроде того же Visual Basic for Applications для того, чтобы уметь использовать все его возможности для воплощения своих пожеланий в жизнь. Ну, а если кто желает посвятить свою жизнь информационным технологиям, создавать новые языки общения с компьютером, то тому знание Visual Basic никогда не помешает, а остальные знания, как говорится, дело наживное, - надо лишь начать учиться и освоить общие принципы.

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

* * *

И, наконец, стоит сказать об использовании программирования на Visual Basic for Applications в процессе обучения в школе, институте, да и в самостоятельном образовании. Даже если человек не желает посвятить свою жизнь информационным технологиям, умение программировать ему всегда пригодится, так как использование возможностей компьютеров сейчас возможно практически в любой области человеческой деятельности. Но главное - это то, что обучение искусству составления программ на собственном опыте, путем самостоятельного исследования возможностей языка и среды разработки является одним из наилучших способов научиться так называемому "научному мышлению", тому подходу к различным явлениям окружающего мира, на котором стоит вся современная наука. Самостоятельно обучаясь использованию Visual Basic for Applications, можно как бы на маленькой модели испробовать почти все исследовательские приемы, которые используются современной наукой, - и наблюдение, и анализ результатов, и эксперимент… Например, вынесение из записанного макроса неизвестной команды в отдельную процедуру для выяснения ее функции, - чем не эксперимент в контролируемых условиях? Или изменение параметров команды с целью узнать, к чему это приведет, - разве не так действуют исследователи, изменяя начальные условия эксперимента?

Так что изучение Visual Basic for Applications может стать целым "научным исследованием", в течение которого можно будет отработать основные приемы современного научного подхода.

** *

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

Удачи!

Орлов Антон Александрович, 2002 г.

Адрес сайта: http://antorlov.chat.ru или http://www.newtech.ru/~orlov

Приложение 1

Игры с Office

Эта небольшая глава непосредственно не относится к теме книги. Она скорее представляет собой дополнение к ней и посвящена ни чему иному, как играм, скрытым в недрах Office. Разумеется, они встроены туда неофициально – это, скорее, развлечение разрабатывавших Office программистов. Имеются эти игры во всех версиях Office, начиная с 95-го. Наиболее богата на игры программа Excel, хотя и Word иной раз не отстает.

Поскольку игры "неофициальные", то, естественно, и кнопок или команд, их вызывающих, в Microsoft Office не найти. Для запуска игр служат определенные последовательности действий, выполнить которые случайно практически невозможно. Как же они стали известными? Да очень просто - со слов тех, кто эти игры и писал. Сами разработчики Microsoft и поделились с общественностью секретами своих детищ, прежде всего потому, что в каждой из игр обязательно присутствует их список в качестве детали интерфейса. К сожалению, в современном капиталистическом мире зачастую права собственности на произведенный товар принадлежат не тому, кто его непосредственно сделал, а совсем другим лицам, поэтому имена разработчиков программного продукта обычно отсутствуют в его документации, а разработчики тоже люди и тоже хотят хотя бы мало-мальской известности.

Doom в Excel 95

В Excel 95 встроена игра наподобие Doom'а. Для ее вызова надо сделать следующее:

1.Открыть Excel c чистой книгой.

2.Прокрутить лист (мышью или клавишами) до строки с номером 95.

3.Выделить всю 95-ю строку, кликнув мышью на номере строки в служебной колонке слева.

4.Нажать клавишу Tab.

5.Открыть меню "Help - About Microsoft Excel" (в англоязычных версиях) или "? - О программе" (в русской версии).

6.Удерживая одновременно клавиши Ctrl, Alt и Shift, кликнуть мышью на кнопке "Technical Support" ("Техническая поддержка").

После этого откроется небольшое окно (рис.11.1), в котором и запустится игра. Передвигаться по залу (он называется "Hall of Tortured Souls" - "Зал Измученных Душ", наверное, назван так из-за творческих мук программистов, создавших Excel) можно с помощью курсорных клавиш. Поднявшись по лестнице, проход на которую виден в конце зала, можно прочитать имена разработчиков Excel'а, бегущие на вделанном в стену экране.

Рис. 11.1. Вход в "Зал Измученных Душ".

Если же перед обратным спуском с лестницы в "Зал Измученных Душ" (рис..11.2) ввести (без кавычек) с клавиатуры слово "excelkfa" (любители "Doom'а" наверняка сразу вспомнят другую знакомую комбинацию), то стена, противоположная той, в которой находится вход на лестницу, упадет, и взгляду предстанет дорога над пропастью (рис.11.3).

Рис. 11.2. "Зал Измученных Душ". Лестница звезд.

Рис. 11.3. "Зал Измученных Душ". Дорога над пропастью.

Пройдя по ней (это нелегко), можно дойти до стены, оклеенной фотографиями разработчиков

Excel'а (рис.11.4).

Рис. 11.4. "Зал Измученных Душ". Фотографии разработчиков Excel 95.

Descent из Excel 97

Descent - это игра-симулятор космического корабля, перемещающегося в инопланетных шахтах. В Excel 97 встроена "леталка": игра, смысл которой заключается в полете над местностью и просмотре открывающихся красот. Вот как ее можно запустить.

1.Запустите Excel 97 и проследите, чтобы в пункте "Сервис - Параметры - Общие" не стояла отметка в пункте "Стиль ссылок R1C1".

2.Создайте чистую таблицу. Нажмите F5 и введите в строке ссылки для перемещения фразу "x97:l97" (т.е. переход к ячейкам от X97 до L97 с их выделением). Нажмите Ввод.

3.Вы перейдете к строке номер 97. Нажмите Tab, а затем, удерживая Shift и Ctrl, щелкните левой кнопкой мыши по иконке "Мастера диаграмм" (рис.11.5). Подождите немного, пока открывающееся окно не распахнется на весь экран.

Рис. 11.5. Именно эта кнопка запускает Descent из недр Excel'а.

Вот вы и в Excel Descent! Все управление - мышью. Левая кнопка - ускорение вперед, правая - назад, движения мыши задают направление. Выход из игры - Esc. Местность замкнута: если лететь в каком-либо направлении, то в конце концов прилетишь туда же, откуда начал полет. К сожалению, "посадка" в игре не отработана: через возвышенности можно спокойно пролетать насквозь. Встречаются весьма привлекательные ландшафты, например, некое подобие моря с колышущимися волнами (рис.11.6).

Рис.11.6. "Descent из недр Excel'а". Море.

Подлетев к центру местности, можно увидеть камень на высоком постаменте. На поверхности камня последовательно проплывают имена разработчиков Excel 97 (рис.11.7).

Рис. 11.7. "Descent из недр Excel'а". Список разработчиков программы.

Pinball в Word 97

Игра, встроенная в Word97, довольно проста и в правилах, и в оформлении (рис.11.8). Это всего лишь Пинболл - игра, задачей которой является удержание на наклонном поле катающегося по этому самому полю шарика с помощью ударов двух приделанных в нижней точке поля лопаточек. Для ее вызова запустите Word 97, создайте в нем новый пустой документ и напечатайте в нем слово "Blue" (без кавычек). Выделите это слово (мышью или курсором с удержанием клавиши Shift), вызовите диалог установки свойств шрифта ("Формат - Шрифт") и задайте выделенному фрагменту полужирное начертание шрифта и синий цвет (в англоязычной версии Word соответственно "Bold" и "Blue"). После этого поставьте курсор в конец слова "Blue" и напечатайте после него один пробел. Теперь вызовите пункт меню "О программе" ("? - О программе", в англоязычной версии - "Help - About") и, удерживая клавиши Ctrl и Shift, кликните левой кнопкой мыши на иконке Word'а в иллюстрации в левой части появившегося окна.

Рис. 11.8. Word Pinball. Всегда к вашим услугам.

Впоявившейся на экране игре управление осуществляется всего двумя клавишами: "Z" - удар левой лопаточкой, "М" - удар правой лопаточкой. Ну, и еще есть клавиша "Esc" для выхода.

Вправой части окна игры медленно проплывает список разработчиков Word'а.

Автогонки в Excel 2000

Если в Microsoft Excel 97 имеется встроенная игра-"леталка", то в следующей версии этой программы работы с электронными таблицами присутствуют даже настоящие автогонки.

Для выхода на трассу запустите Excel 2000 и создайте новую книгу с помощью команды "Создать" из меню "Файл". Затем сохраните эту книгу как web-страницу с помощью соответствующей команды (т.е. "Сохранить как Web-страницу") того же меню, при этом в диалоговом окне сохранения установите в разделе "Сохранить" отметку в пункте "выделенное: Лист" и поставьте галочку в пункте "Добавить интерактивность". Откройте полученную страницу в браузере Microsoft Internet Explorer (версии не ниже 5.0, впрочем, последняя автоматически устанавливается при установке Microsoft Office 2000), во внедренном в нее листе Excel перейдите с помощью клавиши PageDown к строке 2000, а с помощью линейки горизонтальной прокрутки - к столбцу WC. Выделите строку 2000 (просто нажав мышью на ее номер в указателе номеров строк слева листа) и с помощью клавиши Tab переведите выделение на ячейку WC2000. После этого, нажав одновременно левые клавиши Ctrl, Alt и Shift, кликните левой кнопкой мыши на эмблеме Office в левом верхнем углу внедренного в web-страницу листа Excel.

Вот вы и на трассе (рис.11.9).

Рис. 11.9. Автогонки в Excel'е 2000.

Ехать вперед - клавиша "стрелка вверх", тормозить - "стрелка вниз", поворачивать - соответственно стрелки вправо и влево. Включить фары - клавиша "о" (латинская), пробел - стрелять и уничтожать машины соперников. Соприкосновение с обочиной означает проигрыш: аварию автомобиля (рис.11.10).

Рис. 11.10. Автогонки в Excel'е 2000. Авария - опять начинай сначала…

На трассе чередуются ночь и день, - ночью освещение дороги дают только фары. На асфальте написаны имена разработчиков Excel'а (рис.11.11).

Рис. 11.11. Автогонки в Excel'е 2000. Езжай и читай, кто вам такое удовольствие доставил

Поскольку игра базируется не только на Excel'е, но и на средствах сопряжения этой программы с web-страницей, в том случае, если игра у вас не запускается, проследите, чтобы на компьютере были установлены Microsoft Web Components (компонент Office 2000) и в том случае, если они отсутствуют, установите их из дистрибутива Office.

К сожалению, в Excel XP ни автогонки, ни "леталка" не присутствуют. Однако наверняка в скором времени можно будет услышать, как в этой программе запустить какую-нибудь Free Space или еще что почище...

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

Excel’а или Word'а.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]