VBA для чайников
Шрифт:
Интегрированная среда разработки приложений VBA
Вся работа с VBA происходит в интегрированной среде разработки. Этот термин может выглядеть холодно и пугающе, но не давайте ему себя запугать, - вы должны воспринимать интегрированную среду разработки как уютный дом, где можно выполнить всю программистскую работу в тепле и комфорте.
Интегрированная среда разработки, предлагаемая VBA, представлена как редактор Visual Basic. Редактор Visual Basic представляет собой окно приложения с одним меню и набором панелей инструментов, в котором вы получаете доступ к целому ряду дочерних окон, обеспечивающих возможность использования
На рис. 1.3 представлена версия редактора Visual Basic, предлагаемая Visio, но выглядит она точно так же, как и те, которые предлагаются в других VBA-приложениях.
Не все VBA-приложения имеют встроенный редактор Visual Basic (подробнее об этом речь идет ниже, в подразделе Другие диалекты VBA).
Рис. 1.3. Внешний вид редактора Visual Basic в Visio
Подробное описание редактора Visual Basic вы найдете в главе 5 этой книги. Пока же ознакомьтесь со следующим списком некоторых элементов экипировки этого редактора, что ласт вам хотя бы поверхностное представление о том, что он предлагает.
* Место для проектирования форм (диалоговых и других окон), которые будут использоваться в создаваемой вами программе.
*Панель, из которой можно выбирать кнопки, флажки и другие элементы управления, которые вы пожелаете поместить в формы (читайте ниже подраздел Элементы управления ActiveX и другие).
* Окно, с помощью которого можно сообщить VBA, как должны выглядеть и что должны уметь делать формы и элементы управления на них.
* Окна для ввода и редактирования программного кода VBA, с помощью которого вы можете заставить свою программу делать что-нибудь полезное.
* Окна с текущими значениями переменных- числа и текст, которые в них хранятся и меняются, - во время выполнения программы (эти окна значительно облегчают жизнь, когда наступает сезон охоты на спрятавшиеся в программе ошибки).
Макросы и VBA
Чаше других используется способность VBA объединять в группу последовательность различных команд приложения. Если приходится часто использовать одни и те же команды в одной и той же последовательности, имеет смысл сохранить эту последовательность в виде VBA-программы. В результате вы сможете активизировать всю эту последовательность одной командой - той самой, которая запускает созданную вами с этой целью VBA-программу.
Между макросом, который создается в процессе записи, и VBA-программой, код которой вы печатаете вручную, нет никакой - вообще никакой - принципиальной разницы, если, конечно, не считать сам способ создания. Вы можете редактировать программный код макроса, добавляя в него или удаляя из него элементы точно так же, как будто вы напечатали код макроса своими собственными руками.
Создать VBA-программу этого типа проще всего с помощью непосредственной записи всей последовательности выполняемых команд. Для этого большинство VBA-приложений предлагает средство записи макросов, которое работает подобно магнитофону. С того момента, как вы даете указание начать запись макроса, начинают записываться все команды, которые вы используете в приложении. После того как вы остановите запись, средство записи макросов конвертирует записанные команды в эквивалентные им строки VBA-кода. Полученная в результате этого VBA-программа имеет специальное название - макрос. Все тонкости процесса записи макросов обсуждаются в главе 2.
Элементы управления ActiveX и другие
В любой программе для Windows
VBA содержит все эти. а также вообще все стандартные для Windows типы элементов управления. Работают они подобно подключаемым компонентам. Чтобы добавить элемент управлений в любую из форм (например, в диалоговое окно), щелкните на соответствующем элементе управления в панели элементов управления (специальной панели инструментов, пример которой показан на рис. 1.5), а затем щелчком на форме прилепите этот элемент к форме.
Благодаря технологии, загадочно называемой ActiveX, можно не ограничиваться элементами управления, предлагаемыми VBA. Разработанная тоже Microsoft, ActiveX определяет стандарт, в соответствии с которым разработчики программного обеспечения создают взаимозаменяемые элементы управления, которые вы можете при желании подключать к своим программам. Элементы управления, предлагаемые VBA, являются элементами управления ActiveX, но, кроме них, есть еще очень много других. Элементы управления ActiveX работают не только в VBA-программах, но и в программах, созданных с помощью C++ или Java.
Чтобы получить возможность использовать в своих VBA-формах новый элемент управления ActiveX, достаточно добавить его в панель элементов управления (за инструкциями обратитесь к главе 14). После этого с ним можно обращаться точно так же, как и с элементами управления, изначально присутствующими в VBA.
Рис. 1.4. Разнообразные элементы управления в диалоговом окне
Рис. 1.5. Панель элементов управления
VBA предлагает целый ряд элементов управления для ваших форм
Любой, кто пожелает, может создавать такие специализированные программные заготовки для своих собственных нужд или же для продажи таким программистам, как вы. Огромные размеры рынка программ для Windows объясняют, почему так велико количество предлагаемых элементов управления ActiveX. Среди них можно обнаружить как усовершенствованные варианты стандартных элементов управления, так и элементы управления совершенно новых типов, например круговые и линейные шкалы, часы, календари и многое другое.
Если VBA не предлагает нужный вам элемент управления, почти наверняка в этом разнообразии вы сможете найти подходящий и купить его. Представление о том, как выглядят элементы управления, можно получить из рис. 1.6.
Для некоторых из элементов управления ActiveX, предлагаемых различными производителями, главным достоинством является их внешний вид. Эти элементы управления функционально более или менее идентичны стандартным, но выглядят лучше. Представьте себе, что вы собираетесь создать приключенческую игру на космическую тему и хотели бы обеспечить игрокам возможность регулировки скорости своих межгалактических лайнеров. Знаю я, знаю - нет таких людей, кто собирается использовать VBA для создания приключенческих игр! Но представьте только на минуту - разве не лучше вместо пары унылых стрелочек, предлагаемых счетчиком, предложить игрокам большие и яркие изображения космических ракет?