Как можно догадаться из самого названия, VBA предназначается для подгонки имеющихся приложений под запросы пользователя. Здесь должно быть ясно, что приложение - это полномасштабная программа, выполняющая серьезную практическую работу (например, текстовый процессор или приложение баз данных), в отличие от утилиты, которая призвана сделать вашу компьютерную систему более удобной и заставить работать ее надежнее.
С помощью VBA вы можете по своему усмотрению изменить внешний вид или способ применения имеющихся средств приложения и даже добавить свои, совершенно новые возможности. Вот несколько примеров, где VBA окажется наилучшим выбором.
* Возможность, которую вам приходится часто использовать, оказывается спрятанной где-то в глубинах диалоговых окон. Почему бы тогда не поместить соответствующую команду в виде кнопки на панель инструментов, чтобы вызывать команду одним щелчком? А еще лучше, если бы и сама эта кнопка появлялась только тогда, когда команда действительно может понадобиться!
* Вам часто приходится повторять один и тот же набор команд. Не предпочтете ли вы иметь программу, которая запомнит все необходимые для этого шаги и позволит запускать сразу всю последовательность одной командой?
* Ваше программное обеспечение просто не имеет пары-тройки возможностей, которые вам совершенно необходимы. Почему бы вам не добавить недостающие команды самостоятельно?
VBA позволяет выполнить любую из вышеприведенных модификаций приложения; более того, с помощью VBA вы можете создавать свои законченные и полностью работоспособные программы. Ниже, в разделе Подробнее о том, что можно сделать в VBA, эти возможности обсуждаются более детально.
Хотите еще один аргумент в пользу того, что вам стоит-таки купить билет на VBA экспресс? Пожалуйста: VBA быстро и неуклонно движется по направлению к тому, чтобы стать стандартом в индустрии создания программ. После освоения VBA вы сможете использовать этот язык в любом из приложений, поддерживающих VBA. (Правда, для каждого из VBA-приложений, с которыми вы будете работать, вам придется освоить также и их специальные VBA-жаргоны. Подробнее об этом - ниже в разделе VBA как стандарт (точнее, род стандарта).)
И если вы знаете VBA, вы автоматически превращаетесь в эксперта по Visual Basic. Еще один продукт фирмы Microsoft, Visual Basic представляет собой одно из наиболее популярных в мире средств разработки программ самого разного уровня - от простейших условно-бесплатных утилит до приложений высшего класса.
Кстати, одно из преимуществ VBA-стандарта объясняется тем, что вам нужно установить всего лишь одну копию тех файлов поддержки, которые потребуются при работе с VBA в любом из приложений. При стандартной установке все DLL файлы (библиотеки динамической компоновки), как и другие необходимые для VBA файлы, размещаются в папке \Program Files\Common Files\Microsoft SharedWBA.
VBA - это штурвал, но к нему нужен еще и корабль
Теперь ясно, что VBA - прекрасное средство для усовершенствования приложений.
Однако тут скрыта одна загвоздка: поддержка VBA должна быть встроенной в то приложение, которое вы собираетесь модифицировать. (В этой книге я буду использовать термин VBA-приложение для обозначения тех приложений, в которые встроена поддержка VBA, а те программы, которые создаются с помощью VBA, я буду называть VВА-программами.)
Microsoft - вы, наверное, уже слышали об этой компании - создала VBA и обеспечила поддержку VBA во всех своих главных приложениях: Office 97, Office 2000, Office ХР, Word, Excel, Access и PowerPoint. В Outlook, единственном не упомянутом в этом ряду приложении из пакета Microsoft Office, для создания и изменения функциональных возможностей форм вы можете воспользоваться упрощенной версией VBA, получившей название VBScript. В отличие от вышедших раньше версий, Outlook 2002 (как и ее предшественница Outlook 2000) содержит полноценную поддержку VBA для модификации функциональных возможностей самой программы Outlook. VBA поддерживают также FrontPage, средство автоматизации разработки Web-страниц и управления Webузлами фирмы Microsoft, Visio - популярный пакет создания графики для бизнеса, а также Microsoft Project.
VBA-приложения третьих фирм
Многие разработчики программных средств получили лицензию фирмы Microsoft на использование технологии VBA. Вот список некоторых из доступных на сегодня VBA приложений, предлагаемых третьими фирмами.
* Corel WordPerfect Ofilce 2000, Соперник Microsoft Office, включает текстовый процессор, приложения для обработки электронных таблиц, баз данных и для создания презентаций.
* CorelDraw. Являясь самым популярным пакетом для работы с рисунками, CorelDraw вместе с набором других программ из пакета позволяет создавать и обрабатывать как векторную графику, так и растровые изображения, печатать их либо размещать на и Web-страницах.
* AutoCAD. Пользующийся большим успехом продукт фирмы Computer Aided Design; некоторые другие приложения этой фирмы также являются VBA-приложениями.
* M.Y.O.B. Accounting. Полный набор средств бухгалтерского учета для малого бизнеса.
* Micrografx iGrafx. Приложения для создания бизнес- графики - блок-схем, организационных диаграмм и т.п., а также для графического моделирования бизнес-операций.
* OmniTrader. Приложение для оценки и анализа рисков.
Встречаются приложения, в которые встроены средства программирования, очень похожие на VBA, но отличные от VBA. При этом, хотя вы и получаете возможность модифицировать эти приложения практически так же, как VBA-приложения, ваши VBA-программы выполняться в этих He-VBA-приложениях не будут.
О распространенности VBA-приложений
Практически всегда можно утверждать, что приложение, которое легко модифицировать, чтобы оно отвечало нужным требованиям, обладает большей привлекательностью. По этой причине YBA встречается в приложениях почти любого вида- от самых популярных до самых узкоспециализированных.
В мире используются многие миллионы копий Microsoft Office, так что уже одни только приложения Office сами по себе окажутся вполне широким полем действия. Имеющие довольно широкую известность, VBA-приложения других фирм я уже тоже называл (такие как WordPerfect, Visio, AutoCAD).
Вместе с тем, многие VBA-приложения направлены на более узкие специализированные рынки. В качестве примера можно назвать приложения для управления производством, использующим роботизированные линии. Еще одним примером являются приложения для информационной поддержки, которые используются в группах технической поддержки, призванных помочь потребителям или персоналу других подразделений решать возникающие проблемы. VBA можно также обнаружить и в программном обеспечении для торговли, строительной инженерии, телефонии, обработки данных, управления потоками документов, финансового обслуживания, юридической поддержки и медицины.
Лицензии на VBA получили также целый ряд корпораций, которые не являются участниками рынка программного обеспечения. Эти компании занимаются разработкой приложений с нуля для своих собственных нужд, учитывая специфические потребности каждой конкретной фирмы. И даже в этом случае они встраивают в свои приложения поддержку VBA, чтобы впоследствии эти приложения можно было модифицировать и расширять, затрачивая при этом минимум усилий.
Программирование на VBA
По сути, программировать- это значит говорить компьютеру, что он должен делать. Создавая компьютерную программу, вы даете компьютеру некоторый набор шагов, по которым ему предписано следовать. Например, вы можете указать компьютеру сделать следующее.
* Открыть окно, полное интересных кнопочек и меню.
* Создать поле и ввести в него дату вашего рождения.
* Щелкнуть на кнопке Вычислить возраст, которая вычислит ваш возраст, основываясь на введенной дате.
Еще не так давно создание программы означало необходимость самому выписывать все инструкции программы. Поскольку компьютеры не понимают человеческого языка, программистам нужно было печатать программный код - список всех таких инструкций, - используя терминологию одного из специальных языков программирования.