
- •Ознакомление с работой в Visual Basic for Applications: запись, выполнение и редактирование макрокоманд (макросов) Команды записи и выполнения макросов
- •Работа с макросом в Word
- •Нажать клавишу Enter .
- •Работа с макросом в Excel
- •Перенос изменяемого диапазона в ячейку с произвольным адресом
- •Использование кнопки "Произвольный перенос"
- •Пример создания макроса в Excel с относительными адресными ссылками
- •Пример полезного макроса: удаление текущей строки
Работа с макросом в Excel
В окне записи макроса можно задать режим выполнения создаваемого макроса как кнопкой во вкладке "Разработчик" ленты инструментов, так и с помощью созданной комбинации горячих клавиш. После запуска макроса вместо кнопки "Записать макрос" возникает кнопка "Остановить запись".
Пример создания макроса в Excel
(Перенос изменяемого диапазона в ячейку с фиксированным адресом)
Открыть Лист 1.
Создать какой-либо непрерывный диапазон с данными, которые предполагается копировать. (Непрерывность означает, что в диапазоне нет пустых строк).
Перейти на любой лист книги, имитируя ситуацию, что выполнение макроса не должно зависеть от стартового положения курсора.
Начать запись макроса по пути: меню "Разработчик" – раздел "Код" – кнопка "Записать макрос". Присвоить имя макросу: "Диапазон" и указать место сохранения макроса. (Макрос можно сохранять либо в текущей книге, либо, для универсальности, в Личной книге макросов). Добавить описание макроса и назначить комбинацию горячих клавиш (при необходимости).
Перейти на Лист 1, щёлкнув на ярлычке листа.
Щёлкнуть любую ячейку исходного диапазона данных.
Нажать последовательно: вкладка "Главная" – раздел "Редактирование" кнопка "Найти и выделить" "Перейти" – "Выделить" – "Текущая область" ОК.
Щелкнуть правой кнопкой "мыши" на любой ячейке автоматически выделенного диапазона и выбрать операцию "Копировать".
Перейти на Лист 3.
Щелкнуть правой кнопкой на выбранной ячейке листа и выполнить операцию "Вставить".
Остановить запись по пути: вкладка "Разработчик" – "Остановить запись".
Удалить результат операций на Листе 3, полученный вручную при записи макроса.
Запустить макрос по пути: вкладка "Разработчик" – раздел "Код" – кнопка "Макросы" – (выбрать макрос) "Выполнить" или с помощью заданных горячих клавиш. Как видно, в данном случае при выполнении макроса не нужно задавать стартовые условия, т. к. они уже записаны в теле макроса (Sheets("Лист1").Select).
Листинг макроса:
Sub Диапазон()
'
' Диапазон Макрос
Sheets("Лист1").Select
Range("B12").Select
Selection.CurrentRegion.Select
Selection.Copy
Sheets("Лист3").Select
Range("E17").Select
ActiveSheet.Paste
End Sub
Изменить, содержимое и размер исходного диапазона, и вновь проиграть макрос. Как видно, происходит перенесение текущей области любого размера и содержания.
При сохранении файла с созданным макросом, книге должен быть определён тип (.xlsm), т. е. обеспечение сохранения файла с поддержкой макросов.
Перенос изменяемого диапазона в ячейку с произвольным адресом
В случае, когда возникает необходимость с помощью созданного макроса перемещать произвольный диапазон не в фиксированную, а в любую ячейку, например, листа 3, то используется режим относительных адресных ссылок.
Создать на Листе 1 непрерывный диапазон исходных данных и проверить, что курсор находится внутри диапазона.
Перейти на лист, в который производится перенос диапазона (в частности, на Лист 3), в ячейку, которая соответствует верхней левой ячейке диапазона исходных данных, расположенного на Листе 1.
Начать запись макроса, нажав кнопку "Записать макрос", присвоить макросу имя "Произвольный" и нажать ОК.
Перейти на Лист 1 и проверить, что курсор находится внутри исходного диапазона.
Нажать последовательно: вкладка "Главная" – раздел "Редактирование" кнопка "Найти и выделить" "Перейти" – "Выделить" – "Текущая область" ОК.
Щелкнуть правой кнопкой на любой ячейке автоматически выделенного диапазона и выбрать операцию "Копировать".
Перейти на Лист 3.
Щелкнуть правой кнопкой на выбранной ранее ячейке листа и выполнить операцию "Вставить".
Остановить запись по пути: вкладка "Разработчик" – раздел "Код" кнопка "Остановить запись".
Удалить результат операций на Листе 3, полученный вручную при записи макроса.
Запустить макрос по пути: вкладка "Разработчик" – раздел "Код" – кнопка "Макросы" – (выбрать макрос) "Выполнить".
Убедиться, что при выполнении этого макроса можно переносить изменяемый диапазон в любую заданную ячейку листа 3.
Для иллюстрации этого положения можно создать новый непрерывный диапазон, поместить курсор в любую ячейку диапазона, перейти на Лист 3, выделить какую-либо ячейку и проиграть макрос.
Листинг программы при этом выглядит так:
Sub Произвольный()
' Относительное Макрос
'
Sheets("Лист1").Select
ActiveCell.Select
Selection.CurrentRegion.Select
Selection.Copy
Sheets("Лист3").Select
ActiveSheet.Paste
End Sub