Выбрать главу

Подобная дружественность редактора VBA дает прекрасную возможность для самостоятельного изучения этого языка программирования. А в сочетании с средством записи макросов она практически делает ненужными огромные учебники. Достаточно записать пару макросов, с помощью справки изучить назначение каждой записанной команды, и уже можно начинать писать простейшие работающие макросы — редактор не даст ошибиться в грамматике. Надо лишь усвоить некоторые приемы анализа программного кода, о которых пойдет речь в дальнейшем.

Поставив перед любой командой знак апострофа ('), можно ее закомментировать — то есть исключить из выполнения. В этом случае VBA не будет ее выполнять. Кроме того, после знака апострофа можно написать пояснения к соответствующей части программы для себя и других программистов. Все комментарии отображаются в редакторе VBA зеленым цветом.

Щелкнув два раза на названии формы, можно открыть окно Дизайна форм (рис. 1.10).

Рис. 1.10. Окно Дизайна форм.

Нажав на соответствующий элемент (кнопку, поле ввода, переключатель и др.) на панели инструментов "Элементы "управления" и нарисовав затем мышкой этот элемент на поле формы, можно поместить его на форму. Двойной щелчок на помещенном на форму элементе открывает окно программ пользовательской формы, где можно написать программу, которая будет выполняться при этом самом двойном щелчке на элементе. (Можно также выбрать другие действия, которые надо выполнить пользователю или другим программам, чтобы запустить такую программу, — события.) У каждой формы есть окно ее программ — реакций элементов на события, хотя оно может быть и пустым. Вызвать его можно пунктом "Программа" из контекстного меню названия формы в Менеджере проектов.

Если выбрать какой-нибудь элемент формы и из его контекстного меню выбрать пункт "Свойства", то откроется Окно свойств (рис. 1.11).

Рис. 1.11. Окно свойств элементов формы

Здесь можно задать все доступные свойства каждого элемента, например, его цвет, цвет границы, надпись, состояние — доступно/недоступно для изменений, поместить на элемент картинку из внешнего файла (пункт "Picture"). Все эти свойства также можно задавать программно, однако некоторые, вроде той же картинки, стоит задавать только в этом окне. Для получения подробного описания функции каждого элемента окна свойств (а состав этих элементов различен для каждого элемента формы) достаточно просто поставить на него курсор и нажать F1. Настоятельно рекомендуется подробно изучить предназначение всех элементов данного окна как с помощью вызова справки, так и с помощью изучения изменений в состоянии объекта после изменения значения свойства.

Окно Просмотр объектов, вызываемое кнопкой F2 или из меню Вид (рис. 1.12), является кратким справочником по всем возможным свойствам и методам (то есть действиям, командам) объектов VBA. Можно посмотреть, какие свойства или методы доступны для каждого объекта, какие объекты в принципе существуют в VBA, вызвать справочный файл для каждого объекта, свойства или метода.

Рис. 1.12. Окно Просмотр объектов (справа)

На панели инструментов "Правка" редактора VBA имеются соответствующие кнопки для вызова вышеописанных функций. Так, кнопка "Список свойств/методов" позволяет увидеть возможные продолжения любой команды (то же самое можно получить, поставив после команды точку, но так неудобно делать в уже написанном тексте), а кнопка "Сведения" выводит информацию о переменной, которая в данный момент выделена. Как и в самом редакторе Word, в редакторе VBA можно вставлять закладки в текст программы для более удобного перехода к соответствующим его частям.

Все модули, входящие в состав проекта, можно сохранить в текстовом файле. Для этого в Менеджере проектов из контекстного меню правой кнопки мыши соответствующего модуля надо выбрать функцию "Экспорт файла". Модуль будет сохранен в текстовом файле с расширением".bas". Можно просто перетащить название модуля в окно Explorer'а, держа нажатой левую кнопку мыши — редактор VBA поддерживает механизм Drag-and-Drop. Вставить ранее сохраненный модуль можно через команду "Импорт файла" того же меню или путем перетаскивания его иконки в окно редактора VBA.

Модули и формы можно свободно перетаскивать между различными проектами, копируя их из одного проекта в другой.

Средства отладки программы

Редактор VBA обладает очень большими возможностями отладки программы, то есть поиска в ней алгоритмических и языковых ошибок. Поскольку язык VBA — не компилируемый, а интерпретируемый (то есть готовая программа представляет собой текст исходного кода, хранящийся в шаблоне или документе, который переводится в машинные коды при каждом ее запуске, в то время как конечный продукт средств создания программ на остальных языках программирования представляет собой файл с исполняемым машинным кодом), то после завершения написания кода и успешной его отладки программа готова к использованию.

Для запуска на выполнение готовой или записанной программы из редактора VBA необходимо нажать клавишу F5. Программа начнет выполняться и, если в ней вдруг найдутся ошибки в записи команд или обращения к неизвестным командам, будет выдано соответствующее сообщение (рис. 1.13).

Рис. 1.13. Сообщение об ошибке компиляции

Данное сообщение означает, что эта команда редактору VBA неизвестна. Значит — надо изменить код программы, соответственно исправив его.

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

Если возникает ошибка вследствие неправильного использования команд VBA, то редактор VBA выдает диалоговое окно, в котором приводится некоторое описание ошибки. Так, при попытке выделить жирным шрифтом десятимиллионное слово в документе было выдано сообщение "Запрашиваемый номер семейства не существует" (рис. 1.14), так как десятимиллионного слова в документе не было.

Рис. 1.14. Сообщение об ошибке из-за неправильного использования команд VBA

В диалоговом окне на рис. 1.14, как можно видеть, есть кнопка под названием "Отладка". Нажав на нее, можно перейти в режим отладки программы — то есть специального состояния редактора VBA, в котором программа может исполняться построчно, а программист имеет возможность видеть значения всех переменных программы и даже принудительно задавать эти значения. Также в режим отладки можно перейти из редактора VBA, поставив курсор внутрь программы и нажав клавишу F8.

Если ошибка произошла в макросе, находящемся в недоступном шаблоне (например, загруженным глобально через папку автозагружаемых файлов Word), то кнопка "Отладка" будет неактивна.

В режиме отладки программисту доступны следующие возможности:

1. Пошаговое исполнение программы. Выполняются все команды последовательно, но выполнение каждой команды требует нажатия кнопки F8. Если программа где-то выдает ошибку алгоритма, то можно посмотреть, на каком конкретно этапе это происходит. При пошаговом исполнении в редакторе подсвечивается желтым цветом команда, которая будет выполнена следующей.