Создание
макросов в приложении Microsoft Excel
Урок: «Создание
макросов в приложении Microsoft Ехсеl».
Образовательная:
·
Сформировать у учащихся умение применять макросы при работе с
электронными таблицами;
Развивающая:
·
Пробудить инициативу;
·
Развить устойчивый интерес к информационным технологиям;
·
Развить познавательный интерес;
·
Развить память, мышление;
Воспитательная:
·
Воспитать самостоятельность, ответственность.
На этом уроке
мы рассмотрим следующие вопросы:
·
Понятие макроса.
·
Запись простых макросов.
·
Выполнение макросов.
·
Назначение макроса графическим изображениям.
·
Удаление макросов из списка макросов.
·
Ограниченность макросов.
Понятие макроса.
Основное назначение
макросов — это автоматизация работы пользователя.
Макрос — это имеющая
имя последовательность заданных пользователем команд, и действий
хранящаяся в форме программы на языке VВА, которую может выполнить
приложение.
На сегодняшний день
Visual Basic for Application (VВА) — один из самых простых в изучении и
применении языков программирования для автоматизации приложений, входящих в
пакет Microsoft Offic.
Запись макросов в
приложении Ехсеl.
Для работы с
макросами в приложении Ехсеl имеется специальная панель.
Меню: Вид-
Панель инструментов — Visual Basic.
Рисунок1.
Общий алгоритм записи
макроса:
·
Нажать на кнопку «Запись макроса» на панели Visual Basic
·
В диалоговом окне «Запись макроса» дать имя макросу.
Первым символом имени
макроса должна быть буква. В имени макроса не опускается использование
пробелов.
Рисунок2.
·
Выполнить действия, которые нужно записать.
·
Нажать кнопку «Остановить запись» на панели Visual Basic.
Задание I
Рассмотрим процедуру
записи макросов на примере очень простого макроса, который изменяет шрифт и
цвет в выделенном диапазоне ячеек. Эти действия в Ехсеl можно выполнить
многими различными способами (например,
применение стилей, автоформатирования и т.д.), этот пример
продемонстрирует последовательность действий пользователя, необходимые для
записи макроса).
Рисунок 3.
1. В ячейку А4
введите ваше имя, в ячейку А5 введите фамилию, в ячейку А6 — город, где вы
родились, в ячейку А7 — название страны.
2. Установите курсор
в ячейке А4.
3. На панели
Visual Basic нажмите кнопку «Запись макроса» Рисунок4.
4. Введите название
макроса «ЦветШрифт» и нажмите клавишу «ОК». На экране появится панель
инструментов «Остановить запись» Рисунок 5.
ВНИМАНИЕ!
КАЖДОЕ ВАШЕ ДЕЙСТВИЕ ЗАПИСЫВАЕТСЯ.
5. Выполните команду Формат
– Ячейки — Шрифт — Размер 11- Цвет красный — ОК.
6. Щелкните на кнопке
«Остановить запись» на панели Visual Basic. Запись макроса завершена.
Выполнение макросов.
При выполнении
макроса Ехсеl повторяет те же действия, которые вы выполнили в процессе его
создания. Продолжим работу с созданным макросом.
1.Установить курсор в
ячейку А4.
2.Выполнить команду Сервис-Макрос-Макросы
Рисунок 6.
3.Выделите
макрос ЦветШрифт и Выполнить.
4.Аналогично с
ячейками А3 и А4.
Назначение макроса
графическим изображениям.
Продолжим работу с
заданием I.
1. Используя панель Рисование,
нарисуйте на листе любую автофигуру.
2.Щелкните правой
кнопкой мыши на изображении и в открывшемся контекстном меню выберите команду Назначить
макрос.Отобразится диалоговое окно Назначить макрос объекту.
3. Выберите макрос
«ЦветШрифт» и подтвердите выполнение операции.
4. Щелкните вне
графического изображения, чтобы снять выделение с объекта.
5. Введите число и
проверте выполнение макроса.
Рисунок7
Удаление макросов из
списка макросов.
Для того, чтобы
удалить макрос из списка макросов диалогового окна Макросы надо:
1. Выполнить команду Сервис
— Макрос — Макросы.
2. Выделить макрос,
подлежащий удалению и щелкнуть по кнопке «Удалить».
3. Подтвердить
выполнение операции в специальном окне, которое появится.
Ограниченность
макросов
В Ехсеl многие
процедуры можно выполнить с помощью макросов, но макросы имеют и ограничения. С
помощью макросов нельзя выполнить различные действия в зависимости от
содержимого ячейки, нельзя вызвать некоторые диалоговые окна Ехсе1, например,
сохранить документ, нельзя отобразить и использовать пользовательские формы
ввода данных.
Эти ограничения
приводят к необходимости создания программ на VВА.
Задания для
самостоятельного выполнения.
1.Введите в диапазон
F1:F5 любые числа. Создайте макрос для очистки диапазона F1:F5. С помощью
панели инструментов «Рисование» создайте кнопку с надписью «Очистить».
Назначьте кнопке созданный макрос.
2. Введите в диапазон
С2:С6 фамилии ваших друзей, а в диапазон D2:D6 занесите их телефоны.
Создайте две кнопки с
названиями «Выделенное скопировать» и «Вставить». По нажатию на первую кнопку
выделенный диапазон должен копироваться в буфер обмена. По нажатию на вторую
кнопку информация из буфера обмена должна выводиться в текущую ячейку.
Задание II.
Текст по столбцам
В столбец А введите
исходные данные:
Рисунок 8.
Рисунок 9.
Необходимо номера и
телефоны разнести по разным столбцам.
В Ехсеl существует
специальная команда для выполнения этой операции
Данные — Текст по
столбцам.
Технология работы:
1.
Выделите все ячейки столбца А, где занесены исходные данные;
2.
Выполните команду Данные-Текст по столбцам, появится
диалоговое окно.
3.
В этом окне укажите формат данных –« с разделителями».
Нажмите кнопку «Далее».
4.
Во втором диалоговом окне укажите символом – разделителем
является «пробел» Нажмите кнопку «Далее».
5.
В третьем окне установите для каждого столбца данных формат
данных
6.
( текстовой) и «Поместить в – щелкните
по нужной ячейки ( =$C$1 )»- первый столбец, (=$D$1) – второй
столбец – «Готово»
Создайте макрос для
разбора данных по ячейкам. Привяжите макрос к автофигуре. Создайте макрос для
очистки ячеек, в которые заносятся разобранные данные.
ЗаданиеIII.
Подведение промежуточных итогов с применением макросов.
Повторим Ехсеl,
подведем промежуточные итоги, используя возможности программы, затем запишем
макросы, которые будут автоматически, а не вручную подводить промежуточные
итоги и убирать их с листа.
Рисунок10.
Технология работы.
1.
Откройте лист «Итоги»
2.
В столбце «Сумма» значение рассчитайте по формуле
3.
Отсортируйте таблицу по столбцу «Товар».
В процессе подготовки
отчетов часто требуется подводить итоги. Возможности Ехсel позволяют
автоматически вносить промежуточные итоги в таблицы, не задавая вручную области
или формулы для них. Иногда требуется выделять и показывать на экране только
часть информации из созданного отчета. В зависимости от цели отчета, в него
может быть включена полная информация рабочего листа, только промежуточные и
общие итоги или только общие итоги.
Рассмотрим
использование команды «Итоги» на нашем примере. Подсчитаем, на какую сумму было
продано отдельно ксероксов и отдельно факсов.
1.Установим
курсор на любую ячейку отсортированной таблицы.
2.Выполним команду Данные-Итоги. В
появившемся диалоговом окне «Промежуточные итоги» в
строке При каждом изменении ввыберем из открывшегося
списка название графы «Товары», в строке Операция —
функцию Сумма, в строке Добавить итоги по — выберем
название графы «Сумма» — ОК
Создание макросов.
Установите курсор на
исходную таблицу. Если таблица не отсортирована ,отсортируйте по полю «Товар»
Данные-Сортировка.
1.Для создания 1
макроса активизируйте любую ячейку таблицы и
MacroRecorde с помощью команды Сервис-Макрос-Начать запись.
Назначте имя макроса «Итоги»- ОК
2.Выполним команду Данные-Итоги
В диалоговом окне
выберете в строке
При каждом изменении в выберем
из открывшегося списка название графы «Товары», в строке Операция
— функцию Сумма, в строкеДобавить итоги по —
выберем название графы «Сумма» — ОК
3.Активизируйте
опцию Итоги под данным. Нажмите клавишу ОК
Остановите запись
макроса, нажав на кнопку Остановить запись.
Просмотрите
записанную программу. Для этого выполните команду Сервис-Макрос-Макросы.
Выделите макрос «Итоги» и нажмите
кнопку Изменить. Это вызовет появление главного окна редактора
VВА с текстом записанного макроса .
4. Для создания
2-ого макроса «Убрать промежуточные итоги»:
Активизируйте
MacroRecorde с помощью команды Сервис-Макрос-Начать запись. Появится
диалоговое окно «Запись макроса». Назначить имя макроса «Убратьитоги» Установите
курсор в исходную таблицу. Выполните команду Данные—Итоги. В
появившемся окне щелкнуть по кнопке «Убрать все».Остановите
запись макроса, нажав на кнопку Остановить запись.
На
листе «Итоги» создадим кнопки и привяжем к ним созданные макросы .
Рисунок11.
Подведение итогов
урока:
1.
Как автоматизировать действия в приложениях.
2.
Дать понятие Макроса.
3.
Перечислить порядок записи простых
Макросов
4.
Выполнение Макросов.
5.
Назначение Макроса графическим объектам.
6.
Ограниченность Макросов.
7.
Попробуйте создать Макросы в MicrosoftWord.
Используемая литература:
1.
Панфилова Т. «MS EXCEL и VBA»;
2.
Угринович Н. «ИНФОРМАТИКА И ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»
в приложении
Лекция: «Создание макросов в приложении MS Ехсеl».
План лекции для студентов II курса:
- Понятие макроса.
- Запись простых макросов.
- Выполнение макросов.
- Назначение макроса для графическич изображений.
- Удаление макросов из списка макросов.
- Ограниченность макросов.
Понятие макроса.
Основное назначение макросов — это автоматизация работы пользователя.
Макрос — это имеющая имя последовательность заданных пользователем команд, и действий хранящаяся в форме программы на языке Visual Basic for Application (VВА), которую может выполнить
приложение.
На сегодняшний день Visual Basic for Application (VВА) — один из самых простых в изучении и применении языков программирования для автоматизации приложений, входящих в пакет Microsoft Offic.
Запись макросов в приложении Ехсеl:
Для работы с макросами в приложении Ехсеl имеется специальная панель.
Меню: Вид- Панель инструментов — Visual Basic.
Рисунок 1
Общий алгоритм записи макроса:
- Нажать на кнопку «Запись макроса» на панели Visual Basic
- В диалоговом окне «Запись макроса» дать имя макросу.
Первым символом имени макроса должна быть буква. В имени макроса не допускается использование пробелов.
Рисунок 2
- Выполнить действия, которые нужно записать.
- Нажать кнопку «Остановить запись» на панели Visual Basic.
Задание I
Рассмотрим процедуру записи макросов на примере очень простого макроса, который изменяет шрифт и цвет в выделенном диапазоне ячеек. Эти действия в Ехсеl можно выполнить многими различными способами (например, применение стилей, автоформатирования и т.д.), этот пример продемонстрирует последовательность действий пользователя, необходимые для записи макроса).
Рисунок 3
1. В ячейку А4 введите ваше имя, в ячейку А5 введите фамилию, в ячейку А6 — город, где вы родились, в ячейку А7 — название страны.
2. Установите курсор в ячейке А4.
3. На панели Visual Basic нажмите кнопку «Запись макроса» Рисунок 4
4. Введите название макроса «ЦветШрифт» и нажмите клавишу «ОК». На экране появится панель инструментов «Остановить запись» Рисунок 5
ВНИМАНИЕ! КАЖДОЕ ВАШЕ ДЕЙСТВИЕ ЗАПИСЫВАЕТСЯ.
5. Выполните команду Формат – Ячейки — Шрифт — Размер 11- Цвет красный — ОК.
6. Щелкните на кнопке «Остановить запись» на панели Visual Basic. Запись макроса завершена.
Выполнение макросов.
При выполнении макроса приложение Ехсеl повторяет те же действия, которые вы выполнили в процессе его создания. Продолжим работу с созданным макросом.
1.Установить курсор в ячейку А4.
2.Выполнить команду Сервис-Макрос-Макросы
Рисунок 6
3.Выделите макрос ЦветШрифт и Выполнить.
4.Аналогично с ячейками А3 и А4.
Назначение макроса графическим изображениям.
Продолжим работу с заданием I.
1. Используя панель Рисование, нарисуйте на листе любую автофигуру.
2.Щелкните правой кнопкой мыши на изображении и в открывшемся контекстном меню выберите команду Назначить макрос. Отобразится диалоговое окно Назначить макрос объекту.
3. Выберите макрос «ЦветШрифт» и подтвердите выполнение операции.
4. Щелкните вне графического изображения, чтобы снять выделение с объекта.
5. Введите число и проверьте выполнение макроса.
Рисунок 7
Удаление макросов из списка макросов:
Для того, чтобы удалить макрос из списка макросов диалогового окна Макросы надо:
1. Выполнить команду Сервис — Макрос — Макросы.
2. Выделить макрос, подлежащий удалению и щелкнуть по кнопке «Удалить».
3. Подтвердить выполнение операции в специальном окне, которое появится.
Ограниченность макросов
В Ехсеl многие процедуры можно выполнить с помощью макросов, но макросы имеют и ограничения. С помощью макросов нельзя выполнить различные действия в зависимости от содержимого ячейки, нельзя вызвать некоторые диалоговые окна Ехсе1, например, сохранить документ, нельзя отобразить и использовать пользовательские формы ввода данных.
Эти ограничения приводят к необходимости создания программ на VВА.
Задания для самостоятельного выполнения.
1.Введите в диапазон F1:F5 любые числа. Создайте макрос для очистки диапазона F1:F5. С помощью панели инструментов «Рисование» создайте кнопку с надписью «Очистить». Назначьте кнопке созданный макрос.
2. Введите в диапазон С2:С6 фамилии ваших друзей, а в диапазон D2:D6 занесите их телефоны.
Создайте две кнопки с названиями «Выделенное скопировать» и «Вставить». По нажатию на первую кнопку выделенный диапазон должен копироваться в буфер обмена. По нажатию на вторую кнопку информация из буфера обмена должна выводиться в текущую ячейку.
Задание II. Текст по столбцам
В столбец А введите исходные данные:
Рисунок 8
Рисунок 9
Необходимо номера и телефоны разнести по разным столбцам.
В Ехсеl существует специальная команда для выполнения этой операции
Данные — Текст по столбцам.
Технология работы:
- Выделите все ячейки столбца А, где занесены исходные данные;
- Выполните команду Данные-Текст по столбцам, появится диалоговое окно.
В этом окне укажите формат данных –« с разделителями». Нажмите кнопку «Далее». - Во втором диалоговом окне укажите символом – разделителем является «пробел» Нажмите кнопку «Далее».
- В третьем окне установите для каждого столбца данных формат данных
( текстовой) и «Поместить в – щелкните по нужной ячейки ( =$C$1 )»- первый столбец, (=$D$1) – второй столбец – «Готово»
Создайте макрос для разбора данных по ячейкам. Привяжите макрос к автофигуре. Создайте макрос для очистки ячеек, в которые заносятся разобранные данные.
ЗаданиеIII. Подведение промежуточных итогов с применением макросов.
Повторим Ехсеl, подведем промежуточные итоги, используя возможности программы, затем запишем макросы, которые будут автоматически, а не вручную подводить промежуточные итоги и убирать их с листа.
Рисунок10.
Технология работы.
- Откройте лист «Итоги»
- В столбце «Сумма» значение рассчитайте по формуле
- Отсортируйте таблицу по столбцу «Товар».
В процессе подготовки отчетов часто требуется подводить итоги. Возможности Ехсel позволяют автоматически вносить промежуточные итоги в таблицы, не задавая вручную области или формулы для них. Иногда требуется выделять и показывать на экране только часть информации из созданного отчета. В зависимости от цели отчета, в него может быть включена полная информация рабочего листа, только промежуточные и общие итоги или только общие итоги.
Рассмотрим использование команды «Итоги» на нашем примере. Подсчитаем, на какую сумму было продано отдельно ксероксов и отдельно факсов.
1.Установим курсор на любую ячейку отсортированной таблицы.
2.Выполним команду Данные-Итоги. В появившемся диалоговом окне «Промежуточные итоги» в строке При каждом изменении в выберем из открывшегося списка название графы «Товары», в строке Операция — функцию Сумма, в строке Добавить итоги по — выберем название графы «Сумма» — ОК
Создание макросов.
Установите курсор на исходную таблицу. Если таблица не отсортирована ,отсортируйте по полю «Товар» Данные-Сортировка.
1.Для создания 1 макроса активизируйте любую ячейку таблицы и MacroRecorde с помощью команды Сервис-Макрос-Начать запись. Назначьте имя макроса «Итоги»- ОК
2.Выполним команду Данные-Итоги
В диалоговом окне выберете в строке
При каждом изменении в выберем из открывшегося списка название графы «Товары», в строке Операция — функцию Сумма, в строке Добавить итоги по — выберем название графы «Сумма» — ОК
3.Активизируйте опцию Итоги под данным. Нажмите клавишу ОК
Остановите запись макроса, нажав на кнопку Остановить запись.
Просмотрите записанную программу. Для этого выполните команду Сервис-Макрос-Макросы. Выделите макрос «Итоги» и нажмите кнопку Изменить. Это вызовет появление главного окна редактора VВА с текстом записанного макроса .
4. Для создания 2-ого макроса «Убрать промежуточные итоги»:
Активизируйте MacroRecorde с помощью команды Сервис-Макрос-Начать запись. Появится диалоговое окно «Запись макроса». Назначить имя макроса «Убратьитоги» Установите курсор в исходную таблицу. Выполните команду Данные—Итоги. В появившемся окне щелкнуть по кнопке «Убрать все». Остановите запись макроса, нажав на кнопку Остановить запись.
На листе «Итоги» создадим кнопки и привяжем к ним созданные макросы .
Подведение итогов урока:
- Как автоматизировать действия в приложениях.
- Дать понятие Макроса.
- Перечислить порядок записи простых Макросов
- Выполнение Макросов.
- Назначение Макроса графическим объектам.
- Ограниченность Макросов.
- Попробуйте создать Макросы в Microsoft Word.
#Руководства
- 23 май 2022
-
0
Как с помощью макросов автоматизировать рутинные задачи в Excel? Какие команды они выполняют? Как создать макрос новичку? Разбираемся на примере.
Иллюстрация: Meery Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
Макрос (или макрокоманда) в Excel — алгоритм действий в программе, который объединён в одну команду. С помощью макроса можно выполнить несколько шагов в Excel, нажав на одну кнопку в меню или на сочетание клавиш.
Обычно макросы используют для автоматизации рутинной работы — вместо того чтобы выполнять десяток повторяющихся действий, пользователь записывает одну команду и затем запускает её, когда нужно совершить эти действия снова.
Например, если нужно добавить название компании в несколько десятков документов и отформатировать его вид под корпоративный дизайн, можно делать это в каждом документе отдельно, а можно записать ход действий при создании первого документа в макрос — и затем применить его ко всем остальным. Второй вариант будет гораздо проще и быстрее.
В статье разберёмся:
- как работают макросы и как с их помощью избавиться от рутины в Excel;
- какие способы создания макросов существуют и как подготовиться к их записи;
- как записать и запустить макрос начинающим пользователям — на примере со скриншотами.
Общий принцип работы макросов такой:
- Пользователь записывает последовательность действий, которые нужно выполнить в Excel, — о том, как это сделать, поговорим ниже.
- Excel обрабатывает эти действия и создаёт для них одну общую команду. Получается макрос.
- Пользователь запускает этот макрос, когда ему нужно выполнить эту же последовательность действий ещё раз. При записи макроса можно задать комбинацию клавиш или создать новую кнопку на главной панели Excel — если нажать на них, макрос запустится автоматически.
Макросы могут выполнять любые действия, которые в них запишет пользователь. Вот некоторые команды, которые они умеют делать в Excel:
- Автоматизировать повторяющиеся процедуры.
Например, если пользователю нужно каждый месяц собирать отчёты из нескольких файлов в один, а порядок действий каждый раз один и тот же, можно записать макрос и запускать его ежемесячно.
- Объединять работу нескольких программ Microsoft Office.
Например, с помощью одного макроса можно создать таблицу в Excel, вставить и сохранить её в документе Word и затем отправить в письме по Outlook.
- Искать ячейки с данными и переносить их в другие файлы.
Этот макрос пригодится, когда нужно найти информацию в нескольких объёмных документах. Макрос самостоятельно отыщет её и принесёт в заданный файл за несколько секунд.
- Форматировать таблицы и заполнять их текстом.
Например, если нужно привести несколько таблиц к одному виду и дополнить их новыми данными, можно записать макрос при форматировании первой таблицы и потом применить его ко всем остальным.
- Создавать шаблоны для ввода данных.
Команда подойдёт, когда, например, нужно создать анкету для сбора данных от сотрудников. С помощью макроса можно сформировать такой шаблон и разослать его по корпоративной почте.
- Создавать новые функции Excel.
Если пользователю понадобятся дополнительные функции, которых ещё нет в Excel, он сможет записать их самостоятельно. Все базовые функции Excel — это тоже макросы.
Все перечисленные команды, а также любые другие команды пользователя можно комбинировать друг с другом и на их основе создавать макросы под свои потребности.
В Excel и других программах Microsoft Office макросы создаются в виде кода на языке программирования VBA (Visual Basic for Applications). Этот язык разработан в Microsoft специально для программ компании — он представляет собой упрощённую версию языка Visual Basic. Но это не значит, что для записи макроса нужно уметь кодить.
Есть два способа создания макроса в Excel:
- Написать макрос вручную.
Это способ для продвинутых пользователей. Предполагается, что они откроют окно Visual Basic в Еxcel и самостоятельно напишут последовательность действий для макроса в виде кода.
- Записать макрос с помощью кнопки меню Excel.
Способ подойдёт новичкам. В этом варианте Excel запишет программный код вместо пользователя. Нужно нажать кнопку записи и выполнить все действия, которые планируется включить в макрос, и после этого остановить запись — Excel переведёт каждое действие и выдаст алгоритм на языке VBA.
Разберёмся на примере, как создать макрос с помощью второго способа.
Допустим, специальный сервис автосалона выгрузил отчёт по продажам за три месяца первого квартала в формате таблиц Excel. Эти таблицы содержат всю необходимую информацию, но при этом никак не отформатированы: колонки слиплись друг с другом и не видны полностью, шапка таблицы не выделена и сливается с другими строками, часть данных не отображается.
Скриншот: Skillbox Media
Пользоваться таким отчётом неудобно — нужно сделать его наглядным. Запишем макрос при форматировании таблицы с продажами за январь и затем применим его к двум другим таблицам.
Готовимся к записи макроса
Кнопки для работы с макросами в Excel находятся во вкладке «Разработчик». Эта вкладка по умолчанию скрыта, поэтому для начала разблокируем её.
В операционной системе Windows это делается так: переходим во вкладку «Файл» и выбираем пункты «Параметры» → «Настройка ленты». В открывшемся окне в разделе «Основные вкладки» находим пункт «Разработчик», отмечаем его галочкой и нажимаем кнопку «ОК» → в основном меню Excel появляется новая вкладка «Разработчик».
В операционной системе macOS это нужно делать по-другому. В самом верхнем меню нажимаем на вкладку «Excel» и выбираем пункт «Параметры…».
Скриншот: Skillbox Media
В появившемся окне нажимаем кнопку «Лента и панель».
Скриншот: Skillbox Media
Затем в правой панели «Настроить ленту» ищем пункт «Разработчик» и отмечаем его галочкой. Нажимаем «Сохранить».
Скриншот: Skillbox Media
Готово — вкладка «Разработчик» появилась на основной панели Excel.
Скриншот: Skillbox Media
Чтобы Excel смог сохранить и в дальнейшем использовать макрос, нужно пересохранить документ в формате, который поддерживает макросы. Это делается через команду «Сохранить как» на главной панели. В появившемся меню нужно выбрать формат «Книга Excel с поддержкой макросов».
Скриншот: Skillbox Media
Перед началом записи макроса важно знать об особенностях его работы:
- Макрос записывает все действия пользователя.
После старта записи макрос начнёт регистрировать все клики мышки и все нажатия клавиш. Поэтому перед записью последовательности лучше хорошо отработать её, чтобы не добавлять лишних действий и не удлинять код. Если требуется записать длинную последовательность задач — лучше разбить её на несколько коротких и записать несколько макросов.
- Работу макроса нельзя отменить.
Все действия, которые выполняет запущенный макрос, остаются в файле навсегда. Поэтому перед тем, как запускать макрос в первый раз, лучше создать копию всего файла. Если что-то пойдёт не так, можно будет просто закрыть его и переписать макрос в созданной копии.
- Макрос выполняет свой алгоритм только для записанного диапазона таблиц.
Если при записи макроса пользователь выбирал диапазон таблицы, то и при запуске макроса в другом месте он выполнит свой алгоритм только в рамках этого диапазона. Если добавить новую строку, макрос к ней применяться не будет. Поэтому при записи макроса можно сразу выбирать большее количество строк — как это сделать, показываем ниже.
Для начала записи макроса перейдём на вкладку «Разработчик» и нажмём кнопку «Записать макрос».
Скриншот: Skillbox Media
Появляется окно для заполнения параметров макроса. Нужно заполнить поля: «Имя макроса», «Сохранить в», «Сочетание клавиш», «Описание».
Скриншот: Skillbox Media
«Имя макроса» — здесь нужно придумать и ввести название для макроса. Лучше сделать его логически понятным, чтобы в дальнейшем можно было быстро его найти.
Первым символом в названии обязательно должна быть буква. Другие символы могут быть буквами или цифрами. Важно не использовать пробелы в названии — их можно заменить символом подчёркивания.
«Сохранить в» — здесь нужно выбрать книгу, в которую макрос сохранится после записи.
Если выбрать параметр «Эта книга», макрос будет доступен при работе только в этом файле Excel. Чтобы макрос был доступен всегда, нужно выбрать параметр «Личная книга макросов» — Excel создаст личную книгу макросов и сохранит новый макрос в неё.
«Сочетание клавиш» — здесь к уже выбранным двум клавишам (Ctrl + Shift в системе Windows и Option + Cmd в системе macOS) нужно добавить третью клавишу. Это должна быть строчная или прописная буква, которую ещё не используют в других быстрых командах компьютера или программы Excel.
В дальнейшем при нажатии этих трёх клавиш записанный макрос будет запускаться автоматически.
«Описание» — необязательное поле, но лучше его заполнять. Например, можно ввести туда последовательность действий, которые планируется записать в этом макросе. Так не придётся вспоминать, какие именно команды выполнит этот макрос, если нужно будет запустить его позже. Плюс будет проще ориентироваться среди других макросов.
В нашем случае с форматированием таблицы заполним поля записи макроса следующим образом и нажмём «ОК».
Скриншот: Skillbox Media
После этого начнётся запись макроса — в нижнем левом углу окна Excel появится значок записи.
Скриншот: Skillbox Media
Пока идёт запись, форматируем таблицу с продажами за январь: меняем ширину всех столбцов, данные во всех ячейках располагаем по центру, выделяем шапку таблицы цветом и жирным шрифтом, рисуем границы.
Важно: в нашем случае у таблиц продаж за январь, февраль и март одинаковое количество столбцов, но разное количество строк. Чтобы в случае со второй и третьей таблицей макрос сработал корректно, при форматировании выделим диапазон так, чтобы в него попали не только строки самой таблицы, но и строки ниже неё. Для этого нужно выделить столбцы в строке с их буквенным обозначением A–G, как на рисунке ниже.
Скриншот: Skillbox Media
Если выбрать диапазон только в рамках первой таблицы, то после запуска макроса в таблице с большим количеством строк она отформатируется только частично.
Скриншот: Skillbox Media
После всех манипуляций с оформлением таблица примет такой вид:
Скриншот: Skillbox Media
Проверяем, все ли действия с таблицей мы выполнили, и останавливаем запись макроса. Сделать это можно двумя способами:
- Нажать на кнопку записи в нижнем левом углу.
- Перейти во вкладку «Разработчик» и нажать кнопку «Остановить запись».
Скриншот: Skillbox Media
Готово — мы создали макрос для форматирования таблиц в границах столбцов A–G. Теперь его можно применить к другим таблицам.
Запускаем макрос
Перейдём в лист со второй таблицей «Февраль_2022». В первоначальном виде она такая же нечитаемая, как и первая таблица до форматирования.
Скриншот: Skillbox Media
Отформатируем её с помощью записанного макроса. Запустить макрос можно двумя способами:
- Нажать комбинацию клавиш, которую выбрали при заполнении параметров макроса — в нашем случае Option + Cmd + Ф.
- Перейти во вкладку «Разработчик» и нажать кнопку «Макросы».
Скриншот: Skillbox Media
Появляется окно — там выбираем макрос, который нужно запустить. В нашем случае он один — «Форматирование_таблицы». Под ним отображается описание того, какие действия он включает. Нажимаем «Выполнить».
Скриншот: Skillbox Media
Готово — вторая таблица с помощью макроса форматируется так же, как и первая.
Скриншот: Skillbox Media
То же самое можно сделать и на третьем листе для таблицы продаж за март. Более того, этот же макрос можно будет запустить и в следующем квартале, когда сервис автосалона выгрузит таблицы с новыми данными.
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше
1.3. Макросы и безопасность
Microsoft Office снабжен собственной системой безопасности, основная задача которой — противодействие проникновению макровирусов — вредоносных программ на языке VBA.
Макровирусы — это основная проблема, которую породил язык программирования, встроенный в офисные программы. Безопасность работы с макросами сводится к очень простому правилу: не следует разрешать выполнение макросов, если вы не знаете точно, для чего нужны эти макросы.
Если вы открываете документ, который содержит подозрительный, с точки зрения системы, макрос, при настройках безопасности по умолчанию этот макрос блокируется. В Microsoft Word выводится такое сообщение (рис. 1.7.).
Рис.
1.7.
Предупреждение системы безопасности
Если нажать на кнопку Параметры, которая находится в правой части панели сообщений, появится окно настройки свойств макроса. С помощью этого окна мы можем либо разрешить выполнение макросов в открытом документе, выбрав пункт Включить это содержимое, либо запретить, выбрав Установить защиту от неизвестного содержимого.
Для настройки системы безопасности в Microsoft Word нажмите на кнопку Microsoft Office, далее — на кнопку Параметры Word. В левой части появившегося окна выберите пункт Центр управления безопасностью. На странице центра управления безопасностью нажмите кнопку Параметры центра управления безопасностью. Появится окно настройки параметров макросов (рис. 1.8.).
Практика показывает, что при интенсивном использовании собственных макросов, удобнее и безопаснее всего использовать пункт, установленный по умолчанию — Отключить все макросы с уведомлением. Даже если сообщения системы безопасности кажутся вам слишком назойливыми — не стоит поддаваться искушению и активировать пункт Включить все макросы. Ведь так вы ставите вашу систему под угрозу. Даже используя антивирусное ПО, нельзя забывать о потенциальной опасности макросов.
Особый интерес представляет пункт Отключить все макросы кроме макросов с цифровой подписью. Активировав его, вы сможете спокойно запускать макросы, которые вы создали и подписали сами.
Подробности о цифровой подписи вы найдете во второй главе — там, где мы будем знакомиться с редактором VBA.
Теперь, когда мы обсудили безопасность макросов, давайте поговорим о макросах в Microsoft Excel.
1.4. Копирование данных в MS Excel
01-02-Автоматическое копирование.xlsm — пример к п. 1.4.
Процесс создания макросов в MS Excel очень похож на создание макросов в MS Word. Но есть здесь и свои тонкости. Мы создадим макрос, который по нажатию комбинации клавиш копирует значения выделенных пользователем ячеек в другие ячейки.
1.4.1. Задание
Создать макрос в Microsoft Excel, который предназначен для копирования выделенной строки из одного листа (пусть это будет некий прайс-лист) в текущую строку (начиная с выделенной ячейки) другого листа книги Excel. После работы макроса на экране должен быть отображен лист, с которого осуществлялось копирование.
Назначить вызов макроса по нажатию комбинации клавиш Ctrl + Й
Это задание можно рассматривать как создание автоматической «записной книжки» емкостью в одну запись.
1.4.2. Решение
Перед записью макроса выделим ячейки, из которых будем копировать данные. Далее перейдем на вкладку Вид и запустим с нее запись макроса (рис. 1.9.).
Настроить быстрый вызов макроса можно в том же окне, где задается имя макроса и место сохранения. Имя Excel- макросов подчиняется тем же законам, что и в MS Word, а в качестве горячих клавиш предлагается использовать клавишу в комбинации с Ctrl.
После начала записи щелкнем правой кнопкой мыши по выделенной области и выберем в появившемся меню пункт Копировать. Перейдем на лист Записная книжка и вставим скопированное туда командой Вставить с вкладки Главная. Далее – вернемся на лист Price и остановим запись.
Сохраняя книгу Microsoft Excel, содержащую макросы, убедитесь в том, что сохраняете ее в формате «Книга Excel с поддержкой макросов», то есть итоговый файл имеет расширение .xlsm.
Если макрос MS Excel понадобится вам не только в одном документе — сохраните его в Личной книге макросов — эта опция доступна в окне записи макроса при выборе места сохранения.
Наш макрос работает. Но скажите, много ли от него пользы? «Записная книжка» емкостью в одну запись (ведь при копировании новых данных, старые попросту затираются) может найти практическое применение, но оно очень ограничено.
Для того, чтобы пользоваться возможностями приложений на полную мощность, не обойтись без полноценного программирования.
1.5. Управление макросами
Вкладка ленты Вид в Microsoft Word и Microsoft Excel содержит кнопку Макросы. Она расположена над раскрывающимся меню, которым мы пользовались до сих пор. Воспользуемся ею. Откройте один из документов MS Word, содержащий макросы, и нажмите на эту кнопку. Появится окно Макрос (рис. 1.10.), которое предназначено для управления макросами.
Рис.
1.10.
Окно управления макросами в MS Word
В данном случае в окне Макрос отображается список макросов из открытого документа. Чтобы посмотреть макросы, находящиеся в других местах (например, в Normal.dotm ), воспользуйтесь списком Макросы из.
Имя выделенного макроса (это тот самый макрос, который мы записали выше) отображается в строке Имя. Именно с этим макросом мы можем совершать различные действия в данном окне. В частности, здесь доступны следующие варианты:
Выполнить — выполняет макрос. Вместо того, чтобы пользоваться кнопкой быстрого вызова макроса или настраиваемой комбинацией клавиш, для выполнения макроса можно воспользоваться этой кнопкой. Это удобно для запуска макросов, которые используются очень редко.
Изменить — нажав на эту кнопку, вы откроете редактор Visual Basic, который позволяет изменять макросы и создавать собственные программы.
Создать — наберите в строке Имя желаемое имя нового макроса и нажмите на эту кнопку — система создаст новый пустой макрос и откроет его в редакторе.
Удалить — удаление макроса.
1.6. Выводы
Теперь вы можете создавать простые макросы и автоматизировать с их помощью некоторые операции. Но, думаю, вы уже чувствуете, что вам остался буквально один шаг от макрорекордера к самостоятельному созданию макросов. Предлагаю сделать этот шаг в следующей лекции.