VBA для «чайников» - [7]
Добавление новых возможностей
VBA оказывается как раз кстати, когда необходимо расширить функциональные возможности приложения. Предположим, вы пожелали, чтобы в первый понедельник каждого месяца на всех создаваемых вами компьютерных иллюстрациях появлялись красные звездочки, а в каждый второй вторник- синие сердечки. Вправе ли вы ожидать, что разработчики графического приложения предусмотрели ваши пожелания? Используя строительные блоки, предоставленные в ваше распоряжение разработчиками данного приложения, вы создадите VBA-программы, которые приблизят вас к мечте.
В самом простом случае VBA-программа просто содержит определенную последовательность команд, выполняя одну и ту же последовательность шагов при каждом запуске. Тем не менее даже в этом случае VBA-программа экономит ваше время по сравнению с необходимостью активизировать каждую команду последовательности вручную.
Например, в Microsoft Word нет команды для сохранения выделенного блока текста в отдельном файле. Для решения этой задачи вам придется скопировать выделенный текст в буфер обмена, создать новый документ, скопировать в него содержимое буфера, сохранить и закрыть этот новый документ. С помощью VBA можно создать небольшую программу, которая выполнит все эти шаги автоматически (тем самым обеспечив пользователю Word возможность, которую большинство других текстовых процессоров имеют еще со времен СР/М, - операционной системы, использовавшейся на самых первых персональных компьютерах). VBA-код такой программы может выглядеть примерно так:
>Public Sub CopyBlockToFile( )
Selection.Range.Copy ' копирует выделенное
' в буфер обмена
Documents.Add ' создает новый документ
Selection.Range.Paste ' вставляет содержимое буфера
' в новый документ Dialogs(wdDialogFileSaveAs).Show
' открыват диалоговое ACtiveDocument.Close
' окно Сохранение документа
End Sub ' закрывает новый документ
Но, поскольку VBA полноценный язык программирования, VBA-программа совсем не обязана следовать в точности одним и тем же шагам при каждом запуске. Напротив, она должна всякий раз действовать в соответствии с теми условиями, которые обнаруживает после своего запуска. Вот несколько примеров того, как это должно выглядеть.
* Во время запуска VBA-программа может отвечать на то, что делает в данный момент приложение, или на конкретные установки системы в целом. В случае упомянутого примера с Word, можно потребовать, например, чтобы программа сохраняла новый документ, если только некоторый текст уже выбран, а иначе ей предписано только чесать затылок и поглаживать животик. Подобным образом вы можете пожелать, чтобы ваша программа выполняла одни действия утром, а другие - вечером.
* VBA-программа может (в зависимости от содержимого текущего документа) выполнять определенные действия с другим документом того же или другого приложения.
* VBA-программа может отвечать на информацию, вводимую пользователем во время работы программы (рис. 1.2). С помощью VBA легко создавать диалоговые окна, предлагающие пользователю либо выбрать из списка заранее определенных возможностей, либо ввести некоторый текст или числовые значения.
* VBA-программа может менять свое поведение в зависимости от текущего знака Зодиака или фазы Луны. (Здесь, к сожалению, вам еще придется написать программный код, осуществляющий перевод даты и времени в соответствующие знак Зодиака и фазу Луны.)
Рис. 1.2. Если для продолжения работы программы требуется определенная информация от пользователя, можно создавать диалоговые окна, подобные этому.
Как практически заставить VBA-программы реагировать на изменение условий, мы подробно обсудим в следующих главах.
Создание более сложных программ
Создавать VBA-программы, добавляющие функциональные возможности существующим приложениям, может каждый, кто способен запомнить свое школьное расписание или прочитать за завтраком инструкцию на упаковке с вермишелью быстрого приготовления.
Но вам будет не лишним знать, что совсем не обязательно ограничиваться минимальными изменениями и усовершенствованиями существующих приложений; VBA позволяет создавать полноценные и в высшей степени сложные программы, способные конкурировать с мощью готовых продуктов, имеющихся на рынке приложений.
Пользовательские программы, созданные с помощью VBA, интенсивно используют функциональные возможности того VBA-приложения. на которое они опираются (пользовательская
VBA-программа сумеет использовать функциональные возможности из нескольких VBA приложений одновременно). Однако перед пользователем такая программа предстает как цельный самостоятельный объект со своим собственным набором окон, кнопок и меню.
Создание полномасштабной пользовательской программы - штука достаточно амбициозная. Но эта книга предлагает практически всю необходимую для этого информацию, в том числе и вводное описание способов одновременного доступа из программы к нескольким VBA-приложениям.
Кстати, VBA не обязывает вас использовать функциональные возможности приложения.
При желании совершенно игнорируйте их, используя только созданные самостоятельно. Но для запуска даже такой пользовательской программы все равно потребуется VBA-приложение (между прочим, в Visual Basic такой проблемы нет). Здесь вас подстерегает еще одна неприятность, но о ней мы поговорим позже, в подразделе Почему VBA обычно медленнее, чем Visual Basic.
![Графика DirectX в Delphi](/build/oblozhka.dc6e36b8.jpg)
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
![Краткое введение в программирование на Bash](/storage/book-covers/f4/f49c431db2a770eaa9aaeac89bdea6c6bd6fb2ee.jpg)
Предлагаем вам познакомиться со статьей Гарольда Родригеса (Harold Rodriguez) Краткое введение в программирование на Bash«Данное введение в программирование на bash прельстило меня своей краткостью и содержательностью. В то же время я изменил несколько примеров, потому что они делали слегка не то, что ожидается новичками. Начинающим текст будет полезен как отправная точка для начала написания скриптов. Опытным — как справочник. Удачного чтения!» Антон Чернышов, переводчик.
![19 смертных грехов, угрожающих безопасности программ](/storage/book-covers/d5/d5eb03e921fc4dbcb32b47f9061ba48660452baa.jpg)
Эта книга необходима всем разработчикам программного обеспечения, независимо от платформы, языка или вида приложений. В ней рассмотрены 19 грехов, угрожающих безопасности программ, и показано, как от них избавиться. Рассмотрены уязвимости на языках C/C++, C#, Java, Visual Basic, Visual Basic.NET, Perl, Python в операционных системах Windows, Unix, Linux, Mac OS, Novell Netware. Авторы издания, Майкл Ховард и Дэвид Лебланк, обучают программистов, как писать безопасный код в компании Microsoft. На различных примерах продемонстрированы как сами ошибки, так и способы их исправления и защиты от них.
![Фундаментальные алгоритмы и структуры данных в Delphi](/storage/book-covers/d1/d181e715821e8aad1ba4cc62d3404151b48f37de.jpg)
Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.
![Вторая жизнь старых компьютеров](/storage/book-covers/67/67e193afe8a191461c11153dce78b99fbce3dd48.jpg)
Сейчас во многих школах, институтах и других учебных заведениях можно встретить компьютеры старого парка, уже отслужившие свое как морально, так и физически. На таких компьютерах можно изучать разве что Dos, что далеко от реалий сегодняшнего дня. К тому же у большинства, как правило, жесткий диск уже в нерабочем состоянии. Но и выбросить жалко, а новых никто не дает. Различные спонсоры, меценаты, бывает, подарят компьютер (один) и радуются, как дети. Спасибо, конечно, большое, но проблемы, как вы понимаете, этот компьютер в общем не решает, даже наоборот, усугубляет, работать на старых уже как-то не хочется, теперь просто есть с чем сравнивать.
![MFC и OpenGL](/build/oblozhka.dc6e36b8.jpg)
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.