Большинство пользователей постепенно осваивают те возможности Excel, которыенаиболее пригодны для создания документов нужного им типа. Определив длясебя оптимальное количество требуемых инструментов, они, как правило, оставляют без внимания множество средств и функций программы. Наиболее честолюбивые пользователи, для того чтобы облегчить доступ к привычным командам, изменяют пользовательский интерфейс Excel. Но дальше этого они не идут.
1.2 Автоматизация рабочих процессов
Две области, которые многие пользователи, к сожалению, оставляют без внимания, — это запись макросов и программирование в среде VBA (Visual Basic for Applications — Visual Basic для приложений). В недалеком прошлом макросы имели настолько плохую репутацию, что многие не желали даже связываться с ними. Однако сейчас макросы очень просто записывать и выполнять. Применив минимум усилий, можно избежать выполнения действий, которые могут привести к утрате данных или, скажем, к повреждению операционной системы
(именно этого больше всего опасаются начинающие пользователи). Но тот, кто не отважится работать с макросами и программами VBA, лишит себя возможности изменить жизнь к лучшему за счет использования форм (настраиваемых диалоговых окон), которые предназначены для представления информации и получения данных от пользователя, а также применяются в качестве графических средств для работы с настраиваемой процедурой или приложением.
VBA является единой средой разработки приложений во всех программах Microsoft Office 2003. Основные принципы работы в среде VBA и в среде Visual Basic 2003 идентичны. Перечислим главные преимущества, получаемые в результате применения языка VBA.
Во-первых, с помощью VBA можно записывать последовательности повторяющихся команд, характерных для какого-либо приложения, и назначать правила (условия), в соответствии с которым эти последовательности (процедуры VBA) будут вызываться в приложении. Например, после нажатия некоторой кнопки, рабочий лист Excel будет отформатирован с учетом ваших требований, записанных на VBA и сохраненных в рабочей книге или шаблоне.
Во-вторых, применив средства VBA, можно обеспечить нестандартный диалог с пользователем, создавая диалоговые формы и обрабатывая реакцию пользователя на событие в приложении.
Наконец, использование единого языка программирования способствует более тесному взаимодействию Excel с продуктами Microsoft Office. С помощью VBA можно разрабатывать приложения, одновременно применяющие компоненты нескольких программ.
1.2.1 Макрорекордер
В Excel существует возможность создавать собственные макросы и таким образом автоматизировать выполнение основных операций. Макрос представляет собой последовательность команд и функций, записанных в модуле VBA. Насколько Автоматизация рабочих процессов сложными могут быть макросы, можно судить по входящим в пакет поставки
Excel надстройкам, при создании которых использовались средства макропрограммирования.
Существует два способа создания макроса: записывать свои действия во время работы с листом Excel или же написать макрос, используя редактор Visual Basic. Наиболее простым способом создания макрокоманды является ее запись с помощью Макрорекордер, и для этого вовсе не нужны глубокие знания по программированию. Работа Макрорекордер во многом напоминает работу обычного магнитофона, осуществляющего запись и воспроизведение звука. Макрорекордерпротоколирует все выполняемые пользователем действия и представляет их в видеVBA-кода.
Однако следует помнить, что собственноручно написанные макросы позволяют
создавать гораздо более мощные и гибкие программы, чем макросы, записываемыми с помощью Макрорекордер, но, конечно, записать макрос гораздо проще, чем создать его программный код. Процесс записи макроса с помощью Макрорекордер можно условно разбить на четыре следующих этапа:
1) запуск Макрорекордер;
2) присвоение макросу имени;
3) выполнение записываемых операций;
4) завершение записи.
Начало записи
Прежде чем записывать свой макрос, определитесь, что вы хотите получить в результате. Подумайте, какие действия он должен осуществлять, и настройте приложение таким образом, чтобы можно было беспрепятственно выполнить последовательность команд, подлежащих записи. Например, прежде чем приступить
к созданию макроса, предназначенного для редактирования текста, убедитесь,
что окно с нужным документом находится на переднем плане. (Вы можете приостановить процесс записи макроса при необходимости выполнить операцию, которую не следует записывать, но лучше спланировать свои действия заранее.)
Кроме того, вам придется протестировать макрос, потому что при записи фиксируются все действия, в том числе и ошибочные. И обязательно определите, в каких условиях будет работать макрос.
Для того чтобы начать запись макроса, необходимо активизировать чистый рабочий лист, выбрать в меню Tools (Сервис) команду Macro (Макрос), а в открывшемся
подменю — команду Record New Macro (Начать запись). На экране появится диалоговое окно Record Macro (Запись макроса), в котором следует указать имя макроса, ввести его краткое описание, задать комбинацию клавиш для запуска создаваемого
По умолчанию макросу присваивается имя Macro ft (Макрос*), где символ диеза соответствует порядковому
номеру макроса. Имя макроса отображается в поле Macro name (Имя макроса).
Это имя можно оставить без изменения, но при желании можно заменить его другим, которое описывало быстродействия макроса. При выборе имени макроса и комбинации клавиш для его запуска следует придерживаться следующих правил:
1) Имя макроса может состоять максимум из 255 символов. Оно не должно со-
2) держать пробелов и специальных символов.
3) Между фрагментами длинныхимен макросов вместо пробелов вставляются символы подчеркивания (__).
4) При назначении комбинации клавиш для запуска макроса учитывается регистр символов.
Информация о создаваемом макросе вводится в поле Description (Описание). Она пригодится в дальнейшем — при идентификации макроса и при его вызове. Обязательно укажите, какие условия необходимо создать для успешной работы макроса. После щелчка на кнопке ОК в диалоговом окне Record Macro (Запись макроса) на экране появляется панель инструментов с двумя кнопками. Для того чтобы остановить процесс записи макроса, нужно щелкнуть на кнопке Stop Recording (Остановить запись) указанной панели.
С помощью кнопки Relative Reference (Относительная ссылка) определяется режим адресации при записи макросов, то есть какие ссылки на ячейки абсолютные или относительные - используются. Если эта кнопка не активизирована, по умолчанию применяются абсолютные ссылки.
В процессе записи макроса в строке состояния окна программы появляется сообщение Recording (Запись) Таким образом программа напоминает пользователю, что все выполняемые им действия записываются макрорекордером.Теперь вам предстоит выполнить последовательность действий, которые должензаписать макрорекордер:
1) установить полноэкранное представление для окна рабочей книги;
2) отменить отображение сетки путем снятия флажка Gridlines (Сетка) на вкладке View (Вид) диалогового окна Options (Параметры);
3) выделить рабочий лист и задать для всех ячеек денежный формат;
4) установить вид и размер шрифта текста ячеек.
Выполнив перечисленные действия, вы должны остановить запись, и посколькузапись макроса завершена, сообщение Recording (Запись) из строки состояния исчезнет.
Панель инструментов для работы с макросами
В том случае, когда необходимо записать несколько макросов, целесообразно использовать специальную панель инструментов — Visual Basic (рис. 12.4), открытькоторую можно с помощью команды View > Toolbars > Visual Basic Открывает одноименное диалоговое окно, в которомможно задать уровень защиты от макровирусови указать надежных разработчиков макросовЗапускает редактор или активизирует его, если он ужезапущенВыводит на экран или удаляет с него одноименнуюпанель, которая необходима для вставки в документыприложения элементов управленияУстанавливает режим конструктора для текущегодокумента, а также выводит на экран панели ControlToolbox (Элементы управления) и Exit Design mode (Выход из режима конструктора). Данная кнопкадействует как выключатель. Но если вы воспользуетесьею для выхода из режима конструктора, панель ControlToolbox (Элементы управления) останется на экранеЗапускает редактор Microsoft Script Editor, которыйпонадобится для создания HTML- и XML-страницЧтобы начать запись первого макроса, нужно щелкнуть на кнопке Record Macro
(Записать макрос) панели инструментов Visual Basic. В результате на ее месте появится кнопка Stop Recording (Остановить запись). После завершения записи макроса и нажатия кнопки Stop Recording (Остановить запись) панель инструментовVisual Basic остается открытой, а пользователь может без промедления приступать к записи следующего макроса.
Запуск макроса
Перед запуском нового макроса текущий документ рекомендуется сохранить, так как в случае какого-либо сбоя во время записи результаты могут оказаться неожиданными. Если была допущена ошибка, макрос можно изменить и записать под тем же именем еще раз. Перед запуском макроса необходимо открыть тот рабочий лист, для которогодолжны быть выполнены записанные в макросе операции. В Excel существует несколько способов запуска макроса, но наиболее часто используемые только два из них. Во-первых, это можно сделать путем выбора имени макросаВо-вторых, макрос можно запустить посредством нажатия клавиши Ctrl в комбинации с клавишей, назначенной в поле Shortcut key (Сочетание клавиш) диалогового окна Record Macro (Запись макроса). Если комбинация для запуска макроса включает прописную букву, необходимо также нажать клавишу Shift. Клавишу CapsLock при запуске макроса использовать нельзя.
Работа с макросами, основы VBA
Редактирование макроса
При использовании макросов, записанных с помощью макрорекордера, выполнение операций не всегда происходит так, как хотелось бы. Поэтому часто возникает необходимость в редактировании текста макроса.