Интернет-журнал "Домашняя лаборатория", 2007 №3
Шрифт:
В Microsoft Excel в Редакторе VBA в качестве объектов представлены все листы рабочей книги Excel по отдельности, а также сама книга как целое.
2. "Модули." Модули — это и есть то место, где хранятся сами макросы. Щелкнув два раза мышью на имени модуля, можно получить доступ к тексту программы или начать ее создавать. В одном модуле может содержаться несколько макросов.
Программы, записанные пользователем с помощью средства записи макросов, хранятся по умолчанию в модуле NewMacros шаблона Normal.dot.
Для того, чтобы создать новый модуль, необходимо из контекстного меню Менеджере проектов выбрать пункт "Вставить"-"Модуль".
3. "Модули класса". Класс — это
Поэтому в VBA, как и в других языках программирования, имеется понятие класса — то есть типа объектов. Новые классы можно создавать самим. Так, можно создать класс "Журналы" и описать в его модуле класса содержимое объектов этого класса: список учеников — (в коде это реализуется строкой Public Ученики(40) As String), предметов (Public Предметы(20) As String) и др. Теперь для создания нового объекта класса "Журналы" — нового журнала — не надо заниматься утомительным описанием вновь создаваемых списков учеников и предметов: будет достаточно в одной строчке написать команду "Объявить новую переменную класса Журналы" (Dim Журнал25 As Журналы) и присвоить нужные значения соответствующим разделам этого новосозданного журнала (Журнал 25.Ученики (1) ="Андреев" и.т.д.). Кроме того, можно в модуле класса написать программу вычисления средней оценки всех учащихся, и при необходимости сделать такой подсчет вызывать ее одной командой.
Если текст предыдущих абзацев вам пока непонятен, то вернитесь к нему позже, когда узнаете о VBA больше.
4. "Формы". Формы — это диалоговые окна программ, которые можно разработать по своему вкусу. Для того, чтобы в проект добавить форму, надо из контекстного меню в Менеджере проектов выбрать пункт "Вставить"-"UserForm". Будет создано пустое диалоговое окно, в которое можно поместить кнопки, картинки, текст и др. Пример сложной пользовательской формы — на рис. 1.6.
Рис. 1.6. Пример сложной пользовательской формы
5. "Ссылки". Программы могут запускаться на выполнение не только в результате действий пользователя, но и в результате вызова из другой программы. Однако запустить программу можно только из загруженного в Word проекта (шаблона или документа). Если постоянно загружать проект нецелесообразно (например, подобный вызов используется достаточно редко), то для запуска из загруженного проекта программы из другого, незагруженного шаблона нужно поставить на него ссылку (делается это путем простого перетаскивания иконки шаблона в окно Менеджера проектов). В таком случае будет возможен доступ ко всем программам в этом шаблоне из программ проекта, в котором находится ссылка.
Средства
Основным рабочим местом программиста на VBA является окно текста программ и дизайна форм (рис. 1.7). Именно здесь пишется текст программ и разрабатываются диалоговые окна. Для того, чтобы открыть его для какого-либо компонента проекта, надо просто два раза щелкнуть на нем мышью или выбрать из контекстного меню пункт "Программа".
Рис. 1.7. Окно текста программ и дизайна форм.
Контекстная подсказка редактора VBA
Для начала написания программы надо в окне модуля или кода формы написать фразу "Sub Уникальное имя программы", после чего Редактор VBA сам добавит фразу "End Sub", и между этими двумя фразами должен заключаться текст основной части программы.
Редактор VBA — очень дружественный редактор. Он постоянно подсказывает программисту, какие параметры имеет та или иная команда, как надо корректно ее написать. Например, если набрать команду MsgBox (эта команда вызывает на экран диалоговое окно, например, такое, как всем известное окошко "Сохранить изменения в документе?") и набрать после нее открывающую круглую скобку, то над курсором сразу же появится подсказка (см. также рис. 1.7.), из которой можно получить информацию о синтаксисе данной команды, то есть о том, как конкретно нужно задавать ее параметры — в данном случае текст окошка, количество кнопок, значок и звук при появлении — в тексте программы.
Язык VBA называется объектно-ориентированным. Это значит, что очень многие его команды имеют особенный формат, отличный, скажем, от формата языков Basic или Pascal, которые изучались в школах еще 10 лет назад. Типичная команда VBA имеет такой вид: <Обьект>.<Обьект, входящий в первый объект>.<.„>.<Тот объект, с которым нужно произвести действие>. «Собственно действие>. Иными словами, каждая команда пишется как бы "с конца": вначале определяется то, над чем надо произвести действие — объект, а затем само действие — метод. Разделителями компонентов команды служат знаки "точка". Вот пример такой команды:
Application.ActiveDocument.PageSetup.Orientation = wdOrientLandscape
Эта команда устанавливает альбомную ориентацию листа в документе. У объекта Application (то есть приложение, программа, в данном случае — Word) есть подобъект — ActiveDocument (активный документ, а есть еще другие, неактивные документы, тоже загруженные в Word), у этого подобъекта есть подобъект — PageSetup (параметры страницы; а есть еще подобъекты Selection — то, что в данный момент выделено, Characters — все буквы в тексте и др.), у него есть подобъект Orientation (ориентация листа; а есть еще BottomMargin — нижний отступ, LeftMargin — левый отступ и др.), которому присваивается "=" значение wdOrientLandscape — то есть альбомная ориентация листа. Такой же вид имеет и команда получения информации об ориентации листа — она будет выглядеть так:
р = Application.ActiveDocument.PageSetup.Orientation
и после ее выполнения значение переменной р будет wdOrientLandscape или wdOrientPortrait соответственно. (Более подробно синтаксис языка VBA будет рассмотрен в следующей главе.)
При написании команд редактор VBA постоянно подсказывает возможные варианты следующего шага. Например, стоит написать в тексте программы слово Application и поставить точку, как сразу появятся возможные варианты продолжения (рис. 1.8).