Интернет-журнал "Домашняя лаборатория", 2007 №7
Шрифт:
Для того, чтобы та или иная библиотека стала доступной для создания на нее ссылок, ее нужно, помимо копирования на жесткий диск компьютера, особым образом зарегистрировать в системном реестре. Последнее обычно производится программами-инсталляторами при установке программного продукта, содержащего эту библиотеку.
Окно текста программ и дизайна форм (Code Window). Это и есть основное рабочее место программиста на Visual Basic for Applications. Именно здесь пишется текст программ и разрабатываются диалоговые окна. Для того, чтобы открыть его для какого-либо компонента проекта, надо просто два раза щелкнуть на нем мышью или выбрать из контекстного меню пункт "Программа".
Редактор Visual Basic for Applications —
Рис. 3.12. Контекстная подсказка редактора VBA
Язык Visual Basic for Applications называется объектно-ориентированнным. Это значит, что очень многие его команды имеют особенный формат, отличный, скажем, от формата Basic или Pascal, которые изучались в школах лет десять назад. Типичная команда Visual Basic for Applications имеет такой вид: <Объект>.<Объект, входящий в первый объект>.<.„>.<Тот объект, с которым нужно произвести действие>. «Собственно действие>. Иными словами, каждая команда пишется как бы "с конца": вначале определяется то, над чем надо произвести действие — объект, а затем само действие — метод. Разделителями компонентов команды служат знаки "точка". Вот пример такой команды:
Application.ActiveDocument.PageSetup.Orientation = wdOrientLandscape.
Эта команда устанавливает альбомную ориентацию листа в документе. У объекта Application (то есть приложение, программа, в данном случае — Word) есть подобъект — ActiveDocument (активный документ, а есть еще другие, неактивные документы, тоже загруженные в Word), у этого подобъекта есть подобъект — PageSetup (параметры страницы; а есть еще подобъекты Selection — то, что в данный момент выделено, Characters — все буквы в тексте и др.), у него есть подобъект Orientation (ориентация листа; а есть еще BottomMargin — нижний отступ, LeftMargin — левый отступ и др.), которому присваивается "=" значение wdOrientLandscape — то есть альбомная ориентация листа. Такой же вид имеет и команда получения информации об ориентации листа — она будет выглядеть так:
р = Application.ActiveDocument.PageSetup.Orientation,
и после ее выполнения значение переменной р будет wdOrientLandscape или wdOrientPortrait соответственно. (Более подробно синтаксис языка Visual Basic for Applications будет рассмотрен позже.)
При написании команд редактор Visual Basic for Applications постоянно подсказывает возможные варианты следующего шага. Так, например, стоит написать в тексте программы слово Application и поставить точку, как сразу появятся возможные варианты продолжения (рис. 3.13).
Рис. 3.13. Дружественный интерфейс редактора VBA.
Можно мышкой выбрать нужный вариант, и он обязательно будет правильным — не в смысле верности алгоритма (это остается на совести программиста), а
в смысле соответствия правилам синтаксиса и иерархии объектов, а также правописания слова. Затем можно вновь поставить точку, и вновь будет выдан список возможных вариантов продолжения.Есть также команда завершения слова — можно не писать целиком слово Application, а набрать Appli и нажать Ctrl и пробел. Редактор допишет слово до конца сам или предоставит возможность выбора слова, если его однозначно нельзя определить по первым буквам. Он как бы "ведет" программиста по процессу написания программы, позволяя ему сосредоточиться не на банальном синтаксисе языка, а на решаемой программой проблеме, не держа в памяти правила написания каждой команды.
Даже если программист не воспользуется предоставляемой подсказкой и введет всю команду вручную, то редактор не даст ему так просто двинуться дальше, если в элементарном синтаксисе данной команды будет ошибка, выдав сообщение "Ошибка компиляции" (рис. 3.14).
Рис. 3.14. Ошибка компиляции.
Редактор, безусловно, не может найти ошибку, если неверен алгоритм программы — это уже дело программиста. Он не увидит ошибку и в неправильно написанном слове команды, так как посчитает тогда ее функцией — новой командой, созданной самим программистом. Но вот неправильно написанную известную ему команду отследить он может. (В приведенной на рисунке примере программист хотел заменить выделенный текст новым, написав Selection.Text="Новый текст", но забыл этот самый новый текст написать.)
Другим серьезным достоинством редактора Visual Basic for Applications является наличие прекрасной справочной системы. Поставив курсор на любую команду или название объекта Visual Basic for Applications и нажав клавишу F1, можно получить подробную справку о том, зачем нужна эта команда, каков ее синтаксис и даже посмотреть пример ее использования и скопировать его себе, если необходимо (рис. 3.15).
Рис. 3.15. Окно справочной системы. Справка по команде Str$.
К сожалению, как уже говорилось, Справка по VBA на русском языке есть лишь в Microsoft Office 97, да и то переведенная часть составляет не очень-то и большую долю от всего ее объема.
В справке Visual Basic for Applications очень часто приводятся фрагменты кода программ, иллюстрирующие использование той или иной команды. Их можно копировать в свою программу и изменять так, как необходимо.
Подобная дружественность редактора VBA дает прекрасную возможность для самостоятельного изучения этого языка программирования. А в сочетании со средством записи макросов она практически делает ненужными огромные учебники. Достаточно записать пару макросов, с помощью справки изучить назначение каждой записанной команды, и уже можно начинать писать простейшие работающие макросы — редактор не даст ошибиться в грамматике. Надо лишь усвоить некоторые приемы анализа программного кода, о которых пойдет речь в следующей части статьи.
Поставив перед любой командой знак апострофа (') или команду "rem", можно ее закомментировать — то есть исключить из выполнения. В этом случае Редактор VBA не будет ее выполнять. Кроме того, после знака апострофа можно написать пояснения к соответствующей части программы для себя и других программистов.
Все комментарии отображаются в редакторе VBA зеленым цветом.
Щелкнув два раза на названии формы, можно открыть окно Дизайна форм (рис. 3.16.).