[an error occurred while processing this directive] | |
1-й час. Знакомство с Visual Basic for Applications 3-й час. Работа с элементами управления 4-й час. Переменные и константы 6-й час. Логика условных операторов 7-й час. Циклические вычисления 9-й час. Основные объекты Excel 11-й час. Редактор Visual Basic 15-й час. Автоматизация экранных форм 20-й час. Получение внешних данных |
1-й час. Знакомство с Visual Basic for ApplicationsДобро пожаловать в сообщество разработчиков приложений с использованием Excel и Visual Basic for Applications! Как опытный пользователь Excel вы чувствуете себя уверенно и комфортно при работе с этой программой. Сейчас у вас появился шанс подняться на следующий уровень - автоматизировать свою работу в Excel. Даже если вы никогда ранее не программировали, то легко освоите методы решения задач автоматизации с помощью Visual Basic for Applications. На сегодняшний день Visual Basic for Applications - один из самых простых в изучении и применении языков программирования для автоматизации приложений (его даже можно назвать языком макросов). В этом часе будет заложен фундамент ваших знаний VBA, а начнем мы с хорошо знакомого вам процесса записи макросов. В этом часе будут рассмотрены следующие вопросы.
Что такое Visual Basic for ApplicationsДо начала 1990-х годов идея автоматизации приложений вызывала большие сомнения и ее реализация была достаточно трудным делом даже для специалистов. Для каждого приложения, подлежащего автоматизации, необходимо было изучать свой язык программирования, с помощью которого осуществлялась автоматизация. Например, для автоматизации Excel использовался язык макросов Excel, для автоматизации Microsoft Word - язык WordBasic и т.д. Microsoft решила, что иметь для каждого разрабатываемого ею приложения свой язык автоматизации не эффективно, и предложила общий язык программирования, подходящий для всех приложений, - язык Visual Basic for Applications (VBA). Язык Visual Basic for Applications является подмножеством популярного языка разработки приложений Visual Basic. Можно сказать, что VBA является версией Visual Basic, ориентированной на приложения. Вместе с тем VBA имеет отличия от Visual Basic, которые заключаются в следующем.
Несмотря на описанные различия, структуры языков Visual Basic и VBA очень похожи. Если вы знакомы с Visual Basic, то легко перейдете на VBA. Верно и обратное утверждение: после изучения VBA вы получите прочный фундамент для освоения Visual Basic. Более того, после изучения VBA на примере решения задач в Excel вы будете иметь все необходимые знания для применения VBA в программах Word, Access, Outlook, FoxPro и PowerPoint. Одним из основных свойств языка VBA является то, что изучение его на примере одного программного продукта Microsoft (или изучение языка Visual Basic) дает основу для применения его к другим продуктам Microsoft. Говоря более "техническим" языком, VBA - это язык программирования для создания пользовательских решений по автоматизации приложений, использующий процедуры и процессы. Автоматизация среды ExcelВы, вероятно, будете очень удивлены, когда узнаете, что можно сделать в Excel с помощью VBA. Например, можно решить следующие задачи.
Если вы программировали ранее, то знаете, что почти половина требуемой базовой функциональности среды разработки реализуется средствами манипулирования файлами (поиск, открытие, сохранение, печать и т.п.), а также возможностями работы с фрагментами кода (вырезание, вставка, копирование). Вышесказанное делает очевидным преимущество использования среды приложения (в нашем случае - это Excel) для создания кода программ - все основные средства базовой функциональности уже существуют в приложении, и вы можете их использовать. Для вас доступны все средства Excel, включая средства манипулирования файлами, редактирования данных и форматирования. Кроме того, используя среду Excel для разработки, вы имеете доступ к огромной библиотеке функций Excel. Все функции, знакомые любому пользователю Excel, доступны программисту на VBA. С точки зрения начинающего разработчика, еще одно преимущество работы в приложении заключается в том, что вы работаете в знакомой среде. Вам знакомы и система меню, и панели инструментов, и вообще рабочие книги Excel. Поэтому даже начинающий программист будет чувствовать себя уверенно и комфортно в знакомой среде, что немаловажно на первых этапах тернистого пути программиста. Среда Excel предоставляет преимущества не только начинающим программистам. Например, опытные программисты получают в свое распоряжение мощные средства Excel доступа к внешним базам данных. В частности, Excel позволяет легко использовать такие средства, как Microsoft SQL Server, включая OLAP Services, или средства создания отчетов и форм Microsoft Access. Запись простого макросаПрежде чем приступить к написанию кода VBA, уделите несколько минут процедуре записи простого макроса. Средство записи макросов Excel позволяет записывать последовательность действий пользователя, а затем преобразует их в код VBA. Даже если вы эксперт в программировании на VBA, наверняка вы используете запись макросов в своей работе. Существует по крайней мере две причины, по которым следует использовать макросы при написании кодов VBA. Во-первых, код макроса может служить основой для дальнейших разработок. Во-вторых, записанный макрос является отличным учебным материалом. Если вы не знаете, как в кодах VBA записать последовательность каких-либо действий, запишите макрос, выполняющий эти действия, и затем исследуйте его код. Макрос - записанная последовательность команд и действий пользователя, сохраненная под уникальным именем, которую может выполнить Excel. Рассмотрим процедуру записи макросов на примере очень простота макроса, который изменяет шрифт и цвет в выделенном диапазоне ячеек. Хотя указанные действия в Excel можно выполнить многими различными способами (например, применение стилей, автоформатирование и т.д.), этот пример продемонстрирует последовательность действий пользователя, необходимые для записи макроса. Итак, приступим.
Конечно, совсем не обязательно закрывать рабочие книги во время записи макросов. В данном случае этот пункт включен только для "чистоты эксперимента" и для того, чтобы упростить окружение, в котором будет создаваться и исполняться макрос.
Имя макроса может содержать до 255 символов и должно начинаться с буквы. В имя могут входить буквы, цифры и знаки подчеркивания. Пробелы в именах макросов не допускаются, знаки подчеркивания часто используются вместо желаемых пробелов. Для отображения панели инструментов Остановить запись щелкните правой кнопкой мыши на любой панели инструментов и в открывшемся контекстном меню панели выберите команду Настройка, а затем в одноименном диалоговом окне в списке Панели инструментов установите флажок возле пункта Остановить запись.
Рис. 1.1. Диалоговое окно, предлагающее ввести имя макроса и его описание
Если панель инструментов Остановить запись не отображена на экране, выполните команду Сервис > Макрос > Остановить макрос. После записи макроса его можно выполнить. Выполнение макросовПри выполнении макроса Excel повторяет те же действия, которые вы выполняли в процессе его создания. Для выполнения макроса сделайте следующее.
Диалоговое окно Макрос можно также отобразить с помощью комбинации клавиш <Alt+F8>.
Рис. 1.2. В этом диалоговом окне можно выбрать макрос для выполнения или редактирования Просмотр кода макросаПо ходу записи макроса Excel запоминает ваши действия и одновременно преобразует их в код VBA. Чтобы увидеть полученный код, выполните следующие действия.
Рис. 1.3. Редактор Microsoft Visual Basic используется для просмотра и редактирования кода VBA Окно редактора Microsoft Visual Basic имеет много различных компонентов, которые мы подробно рассмотрим в 4-м часе "Переменные и константы". Сейчас мы сосредоточим свое внимание на коде макроса. Ваш код должен походить на код, представленный в листинге 1.1. Листинг 1.1. Процедура БольшойШрифт
Первая строка кода - Sub БольшойШрифт() - представляет начальную точку макроса и его имя. Следующие строчки, в начале которых стоит одиночная кавычка, являются комментариями, документирующими макрос (в данном случае - имя макроса, когда он был записан и кем). "Работающая" часть макроса начинается со слова With. Отметим, что выражение Selection, точка и далее название чего-то в VBA обозначают все, что в данный момент выделено (в данном случае - это Font, шрифт). Вы, вероятно, уже заметили, что количество строк в коде макроса не соответствует тому незначительному количеству действий, которые совершены при записи макроса. Дело в том, что хотя мы изменили только размер и цвет шрифта, в коде макроса сохранена вся информация, представленная на вкладке Шрифт диалогового окна Формат ячеек. Редактирование кода макроса
Как видите, редактировать макросы достаточно просто. Существует много причин, объясняющих необходимость редактирования макросов. Во-первых, вы можете сделать ошибки при записи макроса. Во-вторых, часто возникает необходимость изменить какие-либо параметры макроса (как в нашем примере - изменение размера шрифта с 16 пунктов на 24). В любом случае коды макросов редактируются в редакторе Visual Basic. Ограниченность макросовВ Excel многие процедуры могут быть автоматизированы с помощью макросов, но макросы имеют и ограничения. С помощью макросов вы не сможете сделать, например, следующее.
Эти ограничения приводят к необходимости создания собственно кода VBA. В следующем часе мы изучим работу с макросами более подробно. РезюмеВ этом часе мы рассмотрели возможности использования и процесс создания макросов. Вы узнали, как записывать, выполнять и редактировать макросы. Теперь вы готовы к "погружению" в более глубокие темы использования макросов, чему посвящен следующий час. Здесь вы узнаете, как и почему макросы являются первой ступенью в разработке приложений с использованием VBA. Вопросы и ответыВопрос. Почему для программирования в VBA необходимо знать, как работать с макросами? Ответ. Знание макросов необходимо по двум основным причинам. Во-первых, знание макросов является основой знания VBA. Во-вторых, в дальнейшем вы увидите, что разработку приложений VBA часто эффективно начинать с записи макроса, а затем изменить его код нужным образом. Вопрос. Если раньше никогда не приходилось программировать, возникнут ли большие проблемы при изучении VBA? Ответ. Нет! Основное условие для начала программирования на VBA - умение работать с Excel. Эта книга предлагает путь изучения VBA, опираясь на ваши знания Excel. ПрактикумС помощью тестов и упражнений вы проверите, насколько хорошо усвоили изложенный материал. Ответы на вопросы смотрите в Приложении. Тесты
УпражнениеСоздайте новый макрос (назовите его Заголовок) для ввода вашей фамилии в ячейку A1 и текущей даты в ячейку В1. Этот макрос должен также установить размер шрифта в 14 пунктов в ячейках A1 и В1. После записи макроса просмотрите его код. |
[an error occurred while processing this directive] |