VBA для чайников
Шрифт:
Рис. 1.6. В этой форме размещены элементы управления, которые не предлагаются стандартно VBA
Но во многих случаях предлагаемые элементы управления ActiveX могут делать то, чего не могут стандартные, например размещать на формах небольшие электронные таблицы с данными. Краткий обзор самых популярных и полезных элементов управления ActiveX различных поставщиков вы найдете в главе 14.
Вы можете даже самостоятельно создавать свои собственные элементы управления ActiveX. Для этого используют Visual Basic 5 или 6 (либо профессиональную версию, либо версию для предприятий).
Объектно-ориентированное
В результате своей эволюции Visual Basic превратился в (почти) объектно-ориентированный язык программирования. Хотя освоение приемов работы с объектами и представляет некоторую трудность в начале знакомства с VBA, ожидаемая отдача того стоит. Тонкости программирования объектов будут рассмотрены в главе 12, но уже здесь имеет смысл получить хотя бы поверхностное представление о предмете.
VBA как стандарт (точнее, род стандарта)
Одно из главных преимуществ VBA - то, что это стандарт, т.е. он работает совершенно одинаково во всех VBA-приложениях. Если вы научитесь создавать VBA-программы, скажем, в Microsoft Word, все ваши знания и умения точно так же будут применимы в Visio, AutoCAD и любом другом VBA-приложении.
В таком утверждении доля правды действительно велика, Редактор Visual Basic и все его составляющие идентичны во всех VBA-приложениях (точнее, во всех, где есть редактор Visual Basic). Работает редактор Visual Basic тоже везде одинаково. Это касается, например, процесса создания форм (опять напомню, что формы - это диалоговые и другие окна, создаваемые вами для своих программ). Вы можете создать форму в одном VBA приложении и использовать ее затем в другом. Хотя, честно говоря, проектировать и создать формы в VBA совсем просто. Но когда дело доходит до языка программирования, составляющего ядро VBA, там уже все далеко не так согласованно. С одной стороны, базис языка всегда один и тот же. Например, для определения переменной всегда можно использовать специальное слово Din (напомню, что переменная - это место, где программа хранит число, кусочек текста или нечто другое, что изменяется в процессе выполнения программы). Так, в любом VBA-приложении выражение Dim MyVariable as Integer создает переменную с именем MyVariable и определяет ее как целую, а не как текст или число с десятичными знаками.
Точно так же одинаково определяются выполняющие конкретные задачи подразделы программы (процедуры и функции), независимо от того, в каком из VBA-приложений вы это делаете.
Однако, помимо этих основополагающих команд, в каждом из VBA-приложений довольно много VBA-команд, уникальных именно для этого приложения. Это значит, что вам придется достаточно многое выучить дополнительно, если вы захотите перейти от программирования в рамках одного VBA-приложения к программированию в рамках другого, - хотя и предполагается, что VBA стандартизирован.
Конечно, совсем не удивительно, что такое специализированное на графических изображениях приложение, как Visio. имеет команды, отличные от команд текстового процессора Word. Печально то, что различные VBA-приложения часто используют разные команды даже для тех возможностей, которые у этих приложений общие. Ярким примером такой несогласованности служат команды настройки меню. Можете ли вы поверить, но даже Word, Excel и PowerPoint - эти вечно целующиеся кузины из семейства Microsoft Office- для настройки некоторых элементов имеют совершенно разные VBA-команды. Ох, нет совершенства в этом мире!
Строго говоря, сам язык VBA остается
VBA 5 против VBA 6
Эта книга охватывает последние толкование VBA - версию б, которая используется в приложениях Office 2000, а также в продуктах iGrafx фирмы Micrografx, Corel WordPerfect 2000 и CorelDraw, VBA 5 вышел из Microsoft Office 97, и большинство VBA-приложений третьих фирм поддерживают именно эту версию VBA. Различия между этими двумя версиями не слишком существенны, так что вы можете практически безболезненно перейти от любой из этих двух версий к другой. И все же вам не помешает ознакомиться со следующим списком наиболее важных отличий.
* Справочная система VBA 5 основана на использовании старой программы WinHelp, вто время как VBA б использует для той же цели новую технологию HTML Help фирмы Microsoft (между прочим, многие до сих пор предпочитают WinHelp).
* В VBA 6 ядро языка VBA пополнили 13 новых функций, предназначенных главным образом для манипуляций с текстом и форматирования значений. Описание встроенных функций VBA с указанием тех из них, которые доступны только в VBA 6, вы найдете в главе 11.
* Формы в VBA 6 могут быть немодальными, в отличие от VBA 5, где все формы - модальные. Здесь я даже не пытаюсь определить эти термины - они подробно обсуждаются в главе 10.
Еще несколько усовершенствований в VBA 6 пригодятся только опытным разработчикам и поэтом) чдесь не обсуждаются, поскольку выходят за рамки этой книги.
Другие диалекты VBA
Большинство VBA-приложений имеют полный фарш- и средство записи макросов, и полноценный редактор Visual Basic, и полную версию языка программирования VBA. К таким 'Кадиллакам VBA-приложений можно отнести Visio, WordPerfect, AutoCAD и, безусловно, 'тяжелую артиллерию от Microsoft - Word, Excel и PowerPoint.
Microsoft Access немного выпадает из общего ряда VBA-приложений. В Access нет средства записи макросов, поэтому программный код макросов придется записывать вручную, - по этой причине они не считаются VBA-макросами. Формы Access (пользовательские диалоговые окна) не переносятся в другие VBA приложения. И в то время как Access 2002 содержит редактор Visual Basic, в Access 97 его нет. Вместо редактора там вы получаете отдельные окна для печатания VBA-кода, отладки и проектирования форм.
В некоторых приложениях (например, в Internet Explorer и Outlook) используется урезанная версия VBA, называемая VBScript. Такие VBScript-приложения не имеют редактора Visual Basic, ла и сам язык программирования не полон. Но все равно этот язык остается достаточно мощным.
VBA против Visual Basic
Помимо того, что VBA не позволяет вам создавать отдельные приложения, одно из основных отличий состоит в том, что программы, написанные на VBA, работают медленнее, чем программы, написанные на Visual Basic.
Почему VBA обычно медленнее, чем Visual Basic
Кроме того, что вы не можете создавать в VBA отдельные, автономно работающие приложения, между VBA и Visual Basic есть еще одно серьезное отличие- VBA-программы обычно выполняются медленнее.