Редактор VBA Окно Проводника проектов (Project Explorer) и структура проекта VBA

          Назад



2.2 Окно Проводника проектов (Project Explorer) и структура проекта VBA


Окно проводника проектов (Project Explorer), структура проекта VBA, стандартные модули, модули классов, пользовательские формы, свойства проекта VBA

Окно Проводника проектов при первой активизации редактора Visual Basic обычно открыто. Если оно случайно было закрыто, то вызвать его можно:

  • нажав на клавиши <Ctrl>+<R>;
  • нажав на кнопку Project Explorer на панели Standard ;
  • воспользовавшись меню View -> Project Explorer.

В окне Project Explorer представлено дерево компонентов вашего приложения VBA.

Самый верхний уровень — это проект (Project), которому соответствует документ Word, рабочая книга Excel, презентация PowerPoint и прочие файлы, с которыми работает данное приложение. Например, если вы открыли редактор Visual Basic из Word, то в Project Explorer будут представлены все открытые в настоящее время файлы Word и еще шаблон Normal.dot. Если редактор Visual Basic открыт из Excel, то в Project Explorer будут открытые книги Excel и специальная скрытая книга PERSONAL.XLS.

Помимо того, что обычно содержится в документах Office (текст, рисунки, формулы и т.п.), каждый проект (который и есть документ) — это одновременно и контейнер для хранения стандартных модулей, модулей классов и пользовательских форм. Добавить в проект каждый из этих компонентов можно при помощи меню Insert или через контекстное меню в Project Explorer.

Стандартные модули — это просто блоки с текстовым представлением команд VBA. В нем может быть только два раздела:

  • раздел объявлений уровня модуля (объявление переменных и констант уровня модуля);
  • раздел методов модуля (расположение процедур и функций).

При работе макрорекордера в Word в проекте Normal.dot или текущем документе (в зависимости от места сохранения макроса) автоматически создается стандартный модуль NewMacros (в Excel — Module1), куда и записываются все создаваемые макрорекордером макросы.

В большинстве проектов VBA используется только один стандартный модуль, куда и записывается весь код. Создавать новые стандартные модули есть смысл только из следующих соображений:

  • для удобства экспорта и импорта (из контекстного меню в Project Explorer). Так можно очень удобно обмениваться блоками кода между приложениями VBA (и обычного VB);
  • для повышения производительности. При вызове любой процедуры модуля происходит компиляция всего модуля, поэтому иногда выгоднее разместить процедуры в разных модулях, чтобы компилировать только нужный в данный момент код;
  • для улучшения читаемости. Если ваше приложение выполняет разные группы задач, то код, относящийся к каждой группе, лучше поместить в свой модуль.

Модули классов позволяют создавать свои собственные классы — чертежи, по которым можно создавать свои собственные объекты. Обычно используются только в очень сложных приложениях. Применяются они в обычных приложениях VBA редко, и здесь рассматриваться не будут.

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

Еще один важный контейнер в Project Explorer — контейнер References (в Excel его нет), то есть контейнер ссылок. В нем показывается, ссылки на какие другие проекты (документы Word) есть в нашем проекте, и, соответственно, какие "чужие" программные модули мы можем использовать. По умолчанию в каждый проект Word помещается ссылка на Normal (то есть шаблон normal.dot) — и вы в любом файле можете использовать макросы оттуда.

Обратите внимание, что в этом контейнере — только ссылки на другие документы. Про добавление ссылок на другие объектные библиотеки мы поговорим в модуле 4.

Еще одна полезная возможность Project Explorer — возможность настроить свойства проекта. Для этого нужно щелкнуть правой кнопкой мыши по узлу Project (VBAProject в Excel) и в контекстном меню выбрать Project Properties (то же окно можно открыть и через меню Tools -> Project Properties. В этом окне можно:

  • изменить имя проекта. Эта возможность потребуется, если у вас есть ссылки на проект с одинаковыми именами;
  • ввести описание проекта, информацию о файле справки и параметры, которые будут использоваться компилятором;
  • защитить проект, введя пароль. Не зная этот пароль, проект нельзя будет просмотреть или отредактировать.

И все-таки, что обычно приходится делать в окне Project Explorer?

Если вам нужно создать свой макрос вручную, а макросов в данном документе еще нет, то нужно будет щелкнуть правой кнопкой мыши по узлу проекта (строки, выделенной полужирным цветом) и в контекстном меню дать команду Insert -> Module. В проекте будет создан новый модуль и сразу открыт в окне редактора кода. Что делать в этом окне — об этом в следующем разделе этой главы.

Если вы уже создавали макросы в этом проекте (макрорекордером или вручную), то модуль будет уже создан. Его можно будет увидеть под контейнером Modules. Чтобы его открыть в окне редактора кода, достаточно щелкнуть по нему два раза мышью. Там можно будет найти созданные вами средствами макрорекордера макросы.

Внимание! Обязательно подумайте, где вам будет нужен создаваемый код — только в одном документе или во всех документах данного приложения. Если он нужен будет только в одном документе, используйте стандартный программный модуль этого документа. Если во всех, то используйте программные модули проекта Normal (в Word) или PERSONAL.XLS (в Excel).

Если вам нужно создать графическую форму с элементами управления (кнопками, текстовыми полями, ниспадающими списками и т.п.), то нужно щелкнуть правой кнопкой мыши по узлу проекта и в контекстном меню выбрать Insert -> UserForm. Новая форма будет создана и открыта в окне дизайнера форм. Подробнее о работе с этим редактором — в соответствующей главе.

Теперь, когда программный модуль создан (или найден), можно приступать к работе с редактором кода VBA. Об этом — в следующем разделе.




Далее