Работа с авторекордером
В процессе выполнения лабораторной работы вами должно быть создано 3 рабочих книги:
Запись_макроса_исходная
Запись_макроса_отредактированная
Запись_макроса_шаблон
Каждая последующая книга создается на основе предыдущей и в нее вносятся необходимые изменения.
Запись последовательности действий пользователя с автоматическим преобразованием их в код VBA осуществляется с помощью специальной функции записи макросов Excel. Как это делается, рассмотрим на примере создания таблицы “Поставка товаров” (рис.8).
Поставка товаров | |||||
Код товара | Наименование товара | Единица измерения | Цена | Количество | Сумма |
Товар 1 | шт. | 10,00р. | 50,00р. | ||
Товар 2 | шт. | 15,00р. | 150,00р. | ||
Товар 3 | шт. | 20,00р. | 400,00р. | ||
Товар 4 | кг. | 20,00р. | 210,00р. | ||
Итого: | 810,00р. |
Рис. 8. Таблица “Поставка товаров”
Суть задачи состоит в следующем:
нужно создать один или несколько макросов, при выполнении которых создаётся форма таблицы, таблица форматируется и заполняется данными и формулами для расчёта построчных сумм для каждого товара и общей суммы за поставку всех товаров.
Порядок действий следующий.
- Открыть рабочую книгу; по умолчанию активизируется Лист1.
- Выполнить команду Сервис ® Макрос ® Начать запись(вExcel 2003). В Excel 2007 / 2010 / 2013 на вкладке Разработчик в группе Код нажать Запись макроса.
Рис. 9. Лента MS Excel с открытой вкладкой Разработчик
Можно на вкладке Вид нажать кнопку Макросы и выбрать в появившемся меню опцию Запись макроса.
Рис. 10. Лента MS Excel с открытой вкладкой Вид
В обоих случаях отобразится диалоговое окно Запись макроса. Можно оставить имя макроса по умолчанию, обычно – Макрос1 (рис.11)
Рис. 11. Окно записи имени макроса
или ввести любое другое имя, по возможности, чтобы оно соответствовало выполняемым макросам действиям. В рассматриваемом примере создадим четыре макроса, которые решают следующие задачи:
- ввод заголовка и “шапки” таблицы,
- форматирование таблицы,
- ввод расчётных формул,
- ввод исходных данных таблицы.
Для программного решения этих задач создадим следующие макросы:
· ЗаголовокШапка,
· Формулы,
· Форматирование,
· ВводДанных.
Поскольку в именах VBA, в т.ч. макросов, не допускаются пробелы, их рекомендуется заменять символом “_” (подчёркивание, например, Заголовок_шапка) или писать слова слитно, начиная каждое слово с прописной (заглавной) буквы (ЗаголовокШапка). Используем второй вариант – ЗаголовокШапка.
После ввода имени макроса щёлкнуть кнопку OK, чтобы принять параметры по умолчанию.
Excel вставит новый модуль VBA в проект.
Начиная с этого момента, Excel будет преобразовывать действия пользователя в код VBA. В Excel 2003 при записи в окно добавляется плавающая панель инструментов (рис. 12), содержащая две кнопки: левая – “Остановить запись”(синий квадрат) и правая – “Относительная ссылка”:
Рис. 12. Панель останова записи макроса
Если эта панель не появилась, то нужно выполнить команду Вид ® Панели инструментов ® Настройка и в появившемся окне на вкладке Панели инструментов выставить флажок “Остановить запись”).
В Excel 2007 / 2010 / 2013 на вкладке Разработчик в группе Код нажать Остановить запись.
Аналогичные действия по записи макроса можно выполнить, нажав кнопку Макросы на вкладке Вид и выбрав соответствующую опцию в раскрывающемся списке под этой кнопкой.
В некоторых случаях требуется (например, условия практического задания 1.2) чтобы макрос вводил информацию в активные ячейки. Такой макрос должен быть записан с относительными ссылками. Исходная ячейка выделяется путем вычисления относительного адреса (смещения) и макрос всегда начинает ввод текста в активной ячейке.
Для реализации относительной формы записи следует включить кнопку Относительные ссылки в группе Макросы на вкладке Вид или в группе Код на вкладке Разработчик. Метод записи можно изменять в любой момент записи макроса.