Создание макросов и их применение в Excel

Лекция №2. Создание макросов и их применение в Excel

Разбираемые вопросы:

  1. Понятие макроса.
  2. Запись простых макросов.
  3. Выполнение макросов.
  4. Редактирование макросов.
  5. Назначение макроса графическим изображениям.
  6. Удаление макросов.
  7. Ограниченность макросов.

Понятие макроса

Прежде чем приступить к написанию программ на VBA, воспользуемся простой возможностью создания программы (макроса) на языке VBA с использованием MacroRecorder.

MacroRecorder – это стандартное средство записи макросов в Excel, посредством которого можно записывать последовательность действий пользователя и получать соответствующий код (программу) на VBA. Программа, созданная с помощью MacroRecorder, называется макросом.

Основное назначение макросов – автоматизация работы пользователя. Кроме этого, созданный код макроса может служить основой для дальнейших разработок.

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

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

Макрос – это именованная последовательность заданных пользователем команд и действий, хранящаяся в форме программы на языке VBA.

Запись макросов в приложении Excel

Для работы с макросами в приложении Excel имеется специальная панель.

Для вызова этой панели необходимо выполнить последовательно команды меню: Вид Панели инструментов Visual Basic.

Для записи макроса необходимо:

  1. Нажать на кнопку «Запись макроса» на панели Visual Basic.
  2. В диалоговом окне «Запись макроса» присвоить имя макросу. (В имени макроса первым символом должна быть буква, не допускается использование пробелов).
  3. Выполнить действия, которые нужно записать.
  4. Нажать кнопку «Остановить запись».

Пример

Рассмотрим процедуру записи последовательности действий на следующем примере: определим максимальное значение в выделенном диапазоне ячеек.

Имеется таблица с информацией о самых ценных алмазах в мире.

Нам требуется создать макрос для нахождения алмаза с максимальной массой в граммах.

Это действие в Excel можно выполнить с помощью стандартной функции МАКС, но мы продемонстрируем на этом примере, как сохранить последовательность действий пользователя и на их основе создать макрос.

Выполним следующие действия:

  1. Откроем новую книгу.
  2. Создадим таблицу по приведенному образцу.
  3. В ячейке D9 наберем «Максимальная масса в граммах».
  4. На панели Visual Basic нажмем кнопку «Запись макроса». Появится диалоговое окно «Запись макроса»:

  1. Введем вместо названия «Макрос1» название макроса «Алмаз» и нажмем «ОК». На экране появится панель инструментов «Остановить запись».

Теперь все производимые нами действия будут записываться до тех пор, пока не будет нажата эта кнопка. Не выполняйте никаких лишних действий. Все наши действия фиксируются и записываются.

  1. Установим курсор в ячейку E10. В этой ячейке должен появиться результат.
  2. Выполним команду Вставка Функция. Появится диалоговое окно «Мастер функций».
  3. Выберем в окне «Категории функций» «Статистические», где выберем функцию МАКС. Появится диалоговое окно, в первой строке которого необходимо указать диапазон, в котором мы будем искать максимальное значение, а – E2:E9. нажмем «ОК».

Выполнение макросов

При выполнении макроса Excel повторяет те же действия, которые пользователь выполнял в процессе его создания. Продолжим работу с созданным макросом.

Чтобы проверить, как работает созданный нами макрос, прежде всего надо удалить из ячейки E10 полученный результат. Затем:

  1. Установим курсор в любую ячейку листа.
  2. Выполним команду Сервис Макрос Макросы. Появится диалоговое окно «Макрос».
  3. Выделим макрос «Алмаз» и щелкнем по кнопке «Выполнить». В ячейке E10 появится результат.

Редактирование макросов

Во время записи макроса Excel запоминает наши действия и преобразует их в код VBA. Можно просмотреть полученный код и отредактировать его, если в этом есть необходимость. Для просмотра созданного макроса выполните команду Сервис Макрос Макросы. Появится уже знакомое диалоговое окно «Макрос».

Выделим макрос «Алмаз» и щелкнем по кнопке «Изменить». Откроется окно редактора:

При записи макроса выполнялись всего два действия. Сначала мы установили курсор в ячейку E10. на языке VBA этому действию соответствует строка:

Range(“E10”).Select

Затем мы вызвали функцию МАКС и в качестве аргумента указали диапазон ячеек E2:E9:

ActiveCell.FormulaR1C1 = “=MAX(R[-8]C:R[-1]C)”

Полученный код можно редактировать непосредственно в редакторе Visual Basic. Изменим размер шрифта в ячейке E10 на 16:

Range(“E10”).Font.Size = 16

Можно также изменить цвет шрифта. Например, изменим цвет текста в ячейке на красный:

Range(E10”).Font.ColorIndex = 3

Значения, которые может принять свойство Font.ColorIndex, изменяется от 1 до 56.

После внесенных изменений текст макроса стал следующим:

Sub Алмаз ( )

‘Алмаз Макрос

Range(“E10”).Select

ActiveCell.FormulaR1C1 = “=MAX(R[-8]C:R[-1]C)”

Range(“E10”).Font.Size = 16

Range(“E10”).Font.ColorIndex = 3

End Sub

Закройте окно редактора, вернитесь на лист Excel, удалите содержимое ячейки E10 и запустите макрос на выполнение.

Назначение макроса графическим изображениям

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

Для запуска макроса можно использовать любой элемент, находящийся на рабочем листе. Например, можно использовать для запуска любое графическое изображение. Рассмотрим соответствующий пример.

Используя панель «Рисование», нарисуем на листе любую автофигуру. Щелкнем правой кнопкой мыши на изображении и в открывшемся контекстном меню выберем команду «Назначить макрос». Отобразится диалоговое окно «Назначить макрос объекту». Затем необходимо выбрать макрос «Алмаз» и щелкнуть вне графического изображения, чтобы снять выделение с объекта.

Теперь макрос «Алмаз» можно запустить посредством щелчка на автофигуре.

Запустить макрос на выполнение можно и другим способом, используя командную кнопку. Вставить командную кнопку непосредственно на рабочий лист Excel можно с помощью панели инструментов «Формы» (Вид Панели инструментов Формы). Затем необходимо назначить ей наш макрос.

Удаление макросов из списка макросов

Для того чтобы удалить макрос, надо:

  1. Выполнить команду Сервис Макрос Макросы. Появится уже знакомое диалоговое окно.
  2. Выделить макрос, подлежащий удалению, и щелкнуть по кнопке «Удалить».
  3. Подтвердить выполнение операции в специальном окне, которое появится.

Ограниченность макросов

Множество операций Excel можно автоматизировать посредством макросов. Но макросы имеют и ограничения. С помощью макросов нельзя выполнить различные действия в зависимости от содержимого ячейки, нельзя вызвать некоторые диалоговые окна Excel, например, сохранить документ, нельзя отобразить и использовать пользовательские формы ввода данных.

Эти ограничения приводят к необходимости создания программ на VBA.

PAGE 4

Выполнение макроса

Запись

макроса

Вызов редактора VBA

Вызов панели элементов управления

Вызов конструктора форм

Вызов редактора сценариев

нопка

Панель «Формы»

Создание макросов и их применение в Excel