VBA для «чайников» - [10]

Шрифт
Интервал

Точно так же одинаково определяются выполняющие конкретные задачи подразделы программы (процедуры и функции), независимо от того, в каком из VBA-приложений вы это делаете.

Однако, помимо этих основополагающих команд, в каждом из VBA-приложений довольно много VBA-команд, уникальных именно для этого приложения. Это значит, что вам придется достаточно многое выучить дополнительно, если вы захотите перейти от программирования в рамках одного VBA-приложения к программированию в рамках другого, - хотя и предполагается, что VBA стандартизирован.

Конечно, совсем не удивительно, что такое специализированное на графических изображениях приложение, как Visio. имеет команды, отличные от команд текстового процессора Word. Печально то, что различные VBA-приложения часто используют разные команды даже для тех возможностей, которые у этих приложений общие. Ярким примером такой несогласованности служат команды настройки меню. Можете ли вы поверить, но даже Word, Excel и PowerPoint - эти вечно целующиеся кузины из семейства Microsoft Office- для настройки некоторых элементов имеют совершенно разные VBA-команды. Ох, нет совершенства в этом мире!

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

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-программы обычно выполняются медленнее.

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

После выполнения компиляции программы, созданной в Visual Basic, она сохраняется на жестком диске компьютера в форме машинного кода, который всегда может быть выполнен компьютером с максимальной скоростью, как только программа будет загружена в память.


Рекомендуем почитать
Графика DirectX в Delphi

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Вторая жизнь старых компьютеров

Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.


DirectX 8. Начинаем работу с DirectX Graphics

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Симуляция частичной специализации

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Обработка событий в С++

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.