Редактор VBA активизируется командой Сервис, Макрос, Редактор Visual Basic (Tools, Macro, Visual Basic Editor) или нажатием кнопки Редактор Visual Basic (Visual Basic Editor) панели инструментов Visual Basic. Возвратиться из редактора VBA в рабочую книгу можно нажатием кнопки Вид Microsoft Excel (View Microsoft Excel) Интерфейс VBA состоит из следующих основных компонентов: окно проекта, окно свойств, окно редактирования кода, окна форм, меню и панели инструментов.
Окно проекта
Окно проекта в редакторе VBA активизируется выбором команды Вид, Окно проекта (View, Project window) или нажатием кнопки Окно проекта (Project window) В окне проекта (VBAProject) представлена иерархическая структура файлов форм и модулей текущего проекта (рис. 1.2).
В проекте автоматически создается модуль для каждого рабочего листа и для всей книги. Кроме того, модули создаются для каждой пользовательской формы, макросов и классов. По своему предназначению модули делятся на два типа: модули объектов и стандартные. К стандартным модулям относятся те, которые содержат макросы. Такие модули добавляются в проект командой Вставка, Модуль (Insert, Module). К модулям объектов относятся модули, связанные с рабочей книгой, рабочими листами, формами, и модули класса.
Формы создаются командой Вставка, UserForm (Insert, UserForm), а модули класса — командой Вставка, Модуль класса (Insert, Module). По мере создания, добавления и удаления файлов из проекта эти изменения отображаются в окне проекта. Отметим, что удаление файла из окна проекта производится выбором значка файла с последующим выполнением команды Файл, Удалить (File, Delete).
В окне проекта выводится проект всех открытых рабочих книг. Это позволяет легко копировать формы и коды из одного проекта в другой, что убыстряет процесс создания новых приложений.
Рис. 1.2. Окно проекта
Окно для редактирования кода
Перемещение указателя на значок файла в окне проекта и выполнение двойного щелчка кнопкой мыши открывает окно редактора кода (рис. 1.3) для соответствующего модуля.
Рис. 1.3. Окно редактирования кода
Окно редактирования кода служит в качестве редактора для ввода и изменения кода процедур приложения. Код внутри модуля организован в виде отдельных разделов для каждого объекта, программируемого в модуле. В окне редактирования доступны два режима представления кода: просмотр отдельной процедуры и всего модуля. Переключение режимов работы окна редактирования кода осуществляется выбором одной из двух кнопок в нижнем левом углу окна редактирования кода (табл. 1.1), либо установкой или снятием флажка Просмотр всего модуля (Default to Full Module View) вкладки Редактор (Editor) диалогового окна Параметры (Options), отображаемого на экране командой Сервис, Параметры (Tools, Options) (рис. 1.4).
Таблица 1.1.
Режимы работы редактора кода
Кнопка | Режим работы |
Отдельная процедура | |
Все процедуры модуля |
Рис. 1.4. Диалоговое окно Параметры
Два раскрывающихся списка в верхней части окна редактора кода облегчают ориентацию в процедурах. Левый раскрывающийся список позволяет выбрать управляющий элемент или форму, а правый — содержит список событий, допустимых для выбранного в левом списке объекта. Отметим, что при выборе элемента управления в форме посредством двойного щелчка или перемещении указателя на элемент управления и нажатии кнопки Программа (Veiw Code) открывается окно редактирования кода как раз в том месте, где располагается процедура, связанная с этим элементом управления. Обратный переход от процедуры к объекту управления быстрее всего осуществить нажатием кнопки Объект (Veiw Object).
Интеллектуальные возможности редактора кода
Написание программ существенно облегчается за счет способности редактора кода автоматически завершать написание операторов, свойств и параметров. При написании кода редактор сам предлагает пользователю список компонентов, логически завершающих вводимую пользователем инструкцию. Например, набирая код
Range("A1").
после ввода точки на экране отобразится список компонентов (рис. 1.5), которые логически завершают данную инструкцию. Двойной щелчок на выбранном элементе из этого списка или нажатие клавиши <Таb> вставляет выбранное имя в код программы. При этом использование клавиши <Таb> вместо мышки иногда предпочтительней, т. к. эта клавиша находится прямо под рукой и нажатие на нее производится только одним движением пальца левой руки, что не требует особого времени и усилий.
Рис. 1.5. Список компонентов
Автоматическое отображение списка компонентов происходит только при установленном флажке Список компонентов (Auto List Members) вкладки Редактор (Editor) диалогового окна Параметры (Options), отображаемого на экране после выбора команды Сервис, Параметры (Tools, Options).
Список компонентов можно выводить на экран нажатием комбинации клавиш <Ctrl>+<J>, при этом список отображается как при установленном, так и при снятом флажке Список компонентов (Auto List Members) вкладки Редактор (Editor) диалогового окна Параметры (Options).
Отображение списка компонентов, логически завершающих вводимую инструкцию, является одним из интеллектуальных качеств редактора кода. Этим качеством интеллектуальные ресурсы редактора кода не исчерпываются. Другим его такого рода качеством является автоматическое отображение на экране сведений о процедурах, функциях, свойствах и методах после набора их имени (рис. 1.6).
Рис. 1.6. Отображаемые сведения о вводимой процедуре
Автоматическое отображение на экране сведений о процедурах, функциях, свойствах и методах после ввода их имени происходит только при установленном флажке Краткие сведения (Auto Quick Info) вкладки Редактор (Editor) диалогового окна Параметры (Options), отображаемого на экране после выбора команды Сервис, Параметры (Tools, Options) (см. рис. 1.4).
Описанную выше всплывающую подсказку можно также выводить на экран нажатием комбинации клавиш <Ctrl>+<!>. При этом всплывающая подсказка отображается как при установленном, так и при снятом флажке Краткие сведения вкладки Редактор диалогового окна Параметры (Options).
Редактор кода также производит автоматическую проверку синтаксиса набранной строки кода сразу после нажатия клавиши <Enter>. Если после набора строки и нажатия клавиши <Enter> строка выделяется красным цветом, то это как раз и указывает на наличие синтаксической ошибки в набранной строке. Эту ошибку необходимо найти и исправить. Кроме того, если установлен флажок Проверка_синтаксиса (Auto Syntax Check) вкладки Редактор (Editor) диалогового окна Параметры (Options), отображаемого на экране посредством выбора команды Сервис, Параметры (Tools, Options) (см. рис. 1.4), помимо выделения красным цветом фрагмента кода с синтаксической ошибкой, на экране отображается диалоговое окно, поясняющее, какая возможная ошибка произошла.
Редактор кода обладает еще одной мощной интеллектуальной возможностью, увеличивающей эффективность работы пользователя. Если курсор расположить на ключевом слове языка VBA, имени процедуры, функции, свойства или метода и нажать клавишу <F1>, то на экране появится окно со справочной информацией об этой функции. Обычно в справке имеется пример использования кода, что позволяет быстрее разобраться в ситуации, которая при написании программы озадачила вас.
Работа от примера является одним из краеугольных принципов миропознания и творчества. Стиль работы от примера очень ярко отображен в принципе чайника. Несмотря на всю его шутливость и кажущуюся абсурдность, в нем сформулирован многовековой опыт работы, который очень часто приводит к быстрым и эффективным результатам. Попытаемся описать принцип чайника следующим образом. У программиста спросили, как надо вскипятить воду, если на кухне есть спички, газовая плита, водопроводный кран и пустой чайник, стоящий на кухонном столе. "Тривиально! — ответил программист. - Налейте в чайник воду, зажгите горелку газовой плиты и поставьте на нее чайник." Тогда программисту задают следующий вопрос: "На кухонном столе стоит чайник с водой, горелка газовой плиты зажжена. Как вскипятить чайник?" "Элементарно! - отвечает программист. — Надо просто вылить воду из чайника, погасить горелку и мы оказываемся в условиях задачи, которая только что была успешно решена!"
Окно редактирования форм (UserForm)
Для создания диалоговых окон, разрабатываемых приложений в VBA, используются формы. Редактор форм является одним из основных инструментов визуального программирования. Форма в проект добавляется с помощью команды Вставка, Форма (Insert, Form) или нажатием кнопки Вставить UserForm (Insert UserForm). В результате на экран выводится незаполненная форма с панелью инструментов Панель элементов (Toolbox) (рис. 1.7).
Рис. 1.7. Окно редактирования форм и панель инструментов Панель элементов
Используя панель инструментов Панель элементов из незаполненной формы, можно сконструировать любое требуемое для приложения диалоговое окно. Размещение нового управляющего элемента в форме осуществляется следующей последовательностью действий:
1. Щелкните значок того элемента, который вы собираетесь разместить в форме.
2. Поместите указатель мыши на то место, где будет располагаться управляющий элемент.
3. Нажмите левую кнопку мыши и, не отпуская ее, растяните появившийся прямоугольник до требуемых размеров.
4. Отпустите кнопку мыши. Элемент управления на нужном место создан.
Размеры формы и расположенных на ней элементов управления можно изменять. Технология изменения размеров стандартная для Windows: выделить изменяемый элемент, разместить указатель мыши на одном из размерных маркеров и протащить его при нажатой левой кнопки мыши так, чтобы объект принял требуемые размеры. Окно редактирования форм поддерживает операции буфера обмена.
Рис. 1.8. Команды меню Формат
Таким образом, можно копировать, вырезать и вставлять элементы управления, расположенные на поверхности формы. Для облегчения размещения и выравнивания элементов управления используется сетка. Активизировать ее можно с помощью вкладки Общие (General) диалогового окна Параметры (Options), вызываемого командой Сервис, Параметры (Tools, Options), там же устанавливается шаг сетки. Кроме того, команды меню Формат (Format) автоматизируют и облегчают процесс выравнивания элементов управления как по их взаимному местоположению, так и по размерам (рис. 1.8).
Окно свойств
В окне свойств перечисляются основные установки свойств выбранной формы или элемента управления. Используя это окно, можно просматривать свойства и изменять их установки. Для просмотра свойств выбранного объекта надо либо щелкнуть кнопку Окно свойств (Properties Window) либо выбрать команду Вид, Окно свойств (View, Properties Window) (рис. 1.9).
Рис. 1.9. Окно свойств
Окно свойств состоит из двух составных частей: верхней и рабочей. В верхней части окна свойств располагается раскрывающийся список, из которого можно выбрать любой элемент управления текущей формы или саму форму. Рабочая часть состоит из двух вкладок: По алфавиту (Alphabetic) и По категориям (Categorized), отображающие набор свойств в алфавитном порядке или по категориям. В обоих вкладках свойство Name (имя элемента управления) будет первым. Изменяются значения свойств одним из следующих способов:
Вводом с клавиатуры значения свойства в соответствующее поле.
Значения большинства свойств можно выбрать из раскрывающегося списка.
Раскрывающийся список активизируется щелчком в соответствующем поле окна свойств.Окно Просмотр объектов (Object Browser)
Окно Просмотр объектов (Object Browser) вызывается командой Вид, Просмотр объектов (View, Object Browser) или нажатием кнопки Просмотр объектов (Object Browser) (рис. 1.10). В этом окне приведен список всех объектов, которые имеются в системе и которые можно использовать при создании проекта.
Рис. 1.10. Окно Просмотр объектов
Окно Просмотр объектов (Object Browser) состоит из трех основных частей:
1. Раскрывающегося списка Проект/Библиотека (Project/Library) в левом верхнем углу окна. В этом раскрывающемся списке можно выбрать различные проекты и библиотеки объектов. В частности, библиотеки объектов Excel, VBA, Office и VBAProject (объекты пользовательского проекта). Выбор в списке строки <Все библиотеки> (<Аll Libraries>) отображает список объектов всех библиотек.
2. Списка Классы (Classes). После выбора из раскрывающегося списка Проект/Библиотека (Project/Library) просматриваемой библиотеки, например VBA, все классы объектов выбранной библиотеки выводятся в списке Классы (Classes).
3. Списка Компоненты (Members). После выбора класса из списка Классы (Classes) просматриваемой библиотеки, например FileSystem, все компоненты выбранного класса выводятся в списке Компоненты (Members). При выделении строки в этом списке в нижней части окна Просмотр объектов (Object Browser) приводится дополнительная информация о выбранном компоненте. Кроме того, если нажать на кнопку Справка (Help), расположенную на панели инструментов в правой верхней части окна Просмотр объектов (Object Browser), то на экране отобразится окно Справочник Visual_Basic (Microsoft Visual Basic Help) с подробной информацией о выделенном компоненте.
Объект Application
Объект Application (приложение) является главным в иерархии объектов Excel и представляет само приложение Excel. Он имеет более 120 свойств и 40 методов. Эти свойства и методы предназначены для установки общих параметров приложения Excel. Кроме того, объект Application позволяет вызывать более 400 встроенных функций рабочего листа при помощи конструкции вида:
Application.ФункцияРабочегоЛиста(Аргументы)
Например: