Основы VBA. Общие сведения.
Уважаемый читатель, позвольте перед столь нелегким делом, как почти исчерпывающее описание языка VBA с нашей стороны и кропотливое его изучение – с вашей, сделать небольшое философское отступление на тему: "Что такое язык?" Надеемся, что оно будет способствовать не только пониманию структуры данной главы, но и более глубокому пониманию самого языка Visual Basic for Applications (VBA) как такового. Итак, что же такое язык?
Язык – это знаковая система, предназначенная для хранения и передачи информации. Причем в данном случае, не умаляя общности, можно говорить о том, что не имеет значения, естественный это язык или язык программирования (а может, математический или язык жестов).
Безусловно, языки различны между собой, однако большинству языков присущи общие закономерности и, так сказать, системная организация. То есть для каждого языка определены и приемлемы такие понятия, как:
- алфавит, т. е. допустимые символы языка;
- лексика, т. е. словарь языка – способы образования слов из символов;
- синтаксис, т. е. способы соединения слов в предложения (в VBA это способы соединения ключевых слов и слов пользователя в выражения и программные конструкции);
- семантика, т. е. значение отдельных слов, словосочетаний и предложений (в VBA – значение и логический смысл выражений и программных конструкций);
- прагматика, т. е. назначение и область применения языка.
В дальнейшем мы будем подходить к описанию структуры языка, исходя из вышеприведенных рассуждений и следующего правила очередности описания как языка в целом, так и любой программной конструкции. Сначала описывается прагматика (то есть ответ на вопрос: "Зачем нужна эта конструкция?"), после чего – лексика и синтаксис (то есть формальное описание того, как записывается эта конструкция) и, наконец, – семантика языка (то есть ответ на вопрос: "Что делает конструкция?"), подкрепленная рядом примеров."
С подобной точки зрения можно рассматривать все языки программирования. Все? Да, их много, и мы не будем вводить читателя в заблуждение, говоря, что VBA – единственный и неповторимый. Но во всем многообразии языков программирования VBA действительно выделяется своей уникальностью с точки зрения разработки офисных приложений. Почти все офисные задачи можно решить посредством VBA естественным путем.
Общие сведения
В этом разделе мы приведем ряд сведений общего характера, которые не следует пропускать. Пример в самом начале раздела поможет в дальнейшем по аналогии создавать простые программы, тестирующие приведенные листинги. Условные обозначения помогут разобраться в использовании синтаксиса языковых конструкций. Необходимость описания алфавита и лексики не требует комментариев.
Но, прежде всего, давайте попытаемся привести первое формальное определение VBA.
VBA – это визуальный объектно-ориентированный язык программирования высокого уровня.
Язык программирования высокого уровня – это язык программирования, в который введены элементы, допускающие описание программы в наглядном, легко воспринимаемом человеком виде, упрощающие и автоматизирующие процесс программирования. Конструкции языка программирования высокого уровня отражают естественные для человека понятия, а не архитектуру и не систему команд компьютера. Поэтому программа, составленная на языке программирования высокого уровня, сначала особым образом обрабатывается компьютером (транслируется или интерпретируется), а затем выполняется.
В визуальном языке программирования взаимодействие пользователя с системой программирования при составлении и отладке программ реализуется диалоговыми средствами графического интерфейса пользователя (см. раздел "Редактор Visaиl Basic for Application").
Объектно-ориентированное программирование (ООП) – наиболее популярная в настоящее время методология программирования. Центральной идеей ООП является инкапсуляция, т. е. структурирование программы на модули особого вида, объединяющие данные и процедуры их обработки, причем внутренние данные модуля могут быть обработаны только предусмотренными для этого процедурами (см. главу "Объектная модель Outlook 2002").
Если после данной расшифровки легче не стало, не волнуйтесь и не откладывайте книгу до лучших времен. В процессе изложения многие термины невозможно определять без ссылок вперед, но и оставлять термин или понятие без какого-либо внимания тоже считается некорректным. Таким образом, мы сейчас и в дальнейшем будем прибегать к следующему методу изложения: краткое, по возможности формальное определение, отражающее суть предмета, но без особых комментариев и с обязательной ссылкой вперед, где подробно, в доступной форме будет объяснен и термин, и сопутствующий ему материал.
Итак, после исторического экскурса и ряда формальных определений можно было бы перейти к описанию алфавита и лексики языка, но мы решили сделать паузу и привести пример. Для дальнейшего изучения мы сочли необходимым привести пример разработки простейшей программы, начиная с запуска редактора VBE, создания модуля, написания и выполнения кода. Без объяснения конструкций и интерфейса, но с многочисленными ссылками вперед. Это позволит вам на первых порах при необходимости и желании проверить приведенные ниже примеры в действии. Цель данного раздела – создать программу по выводу диалогового окна с надписью "Здравствуй, мир!" Этот пример неслучаен – с написания подобных элементарных программ начинаются многие учебники по языкам программирования, и мы решили не нарушать традицию.