Давайте рассмотрим способы создания макросов в Excel. Первым делом Вам необходимо проверить настройку безопасности для того, что бы макросы были включены, иначе ничего не получится. Перейдите главное меню «Сервис-Макрос-Безопасность»
Поставьте флажок уровня на низкую (при запуске книг с макросами Excel вопросов о блокировке не задает) или среднюю (будет выдаваться предупреждение). Для учебных целей можно установить безопасность на низкую. Перезапустите Excel.
В Excel есть два способа создания макроса:
- Записать с помощью соответствующего пункта меню
- Создать вручную
Первый способ легкий и не требует никаких знаний в программировании. Достаточно в главном меню выбрать Сервис->Макрос->Начать запись…
В открывшемся окне записи макроса необходимо указать его имя, которое будет выводиться в списке доступных макросов, можно добавить описание (для чего макрос, автор и т.д.), присвоить клавишу для быстрого запуска и указать в какую книгу сохранить макрос. После нажатия «OK» начнется запись
Теперь, все что Вы будете делать в рабочей книге (добавлять, изменять, удалять, создавать сводные и т.д.) все будет записываться. Для примера напишите в ячейке B3=45, B4 = 5, а в В5 формулу «=В3+B4*10». Для остановки записи необходимо нажать соответствующую кнопку:
После завершения записи наш макрос появится в списке Сервис->Макрос->Макросы (Alt+F8)
Остается его только выбрать и нажать «Выполнить».
Все действия, которые мы произвели во время записи, с точностью повторятся. Для проверки очистите лист и выполните макрос. Но такой способ не удобен и практически в дальнейшем применить запись невозможно т.к. отсутствует универсальность. Плюс в том, что мы записывая какие либо действия получаем готовый код, который в умелых руках становится универсальным и затачивается под необходимые задачи. Давайте рассмотрим, какой код был записан. Для этого нажмите кнопку «Изменить» в меню Сервис->Макрос->Макросы.
Откроется следующий код:
Sub Макрос1()
Range(«B3»).Select
ActiveCell.FormulaR1C1 = «45»
Range(«B4»).Select
ActiveCell.FormulaR1C1 = «5»
Range(«B5»).Select
ActiveCell.FormulaR1C1 = «=R[-2]C+R[-1]C*10»
Range(«B6»).Select
End Sub
Sub … End Sub – все макросы запускаемые через меню Сервис->Макрос->Макросы начинаются с ключевого слова Sub (процедура). Далее следует название процедуры «Макрос1», оно же имя нашего макроса которое указывается в момент начала записи. Пустые скобки обязательны! Следует учесть, что «запускаемая» процедура не должна содержать никаких параметров, иначе макрос исчезнет из списка. Все процедуры в VB завершаются командой End Sub. Sub имеет дополнительные ключевые слова Private и Public, определяющие зону видимости процедуры. Об этом будет рассказано в следующих статьях.
Range(«B3″).Select – эта и последующие команды были записаны когда мы выделяли ячейки B3, B4, B5.
ActiveCell.FormulaR1C1 – команда записывающая значение или формулу в выделенную ячейку после знака равенства. Данная запись присвоения ячейке значения и формулы не очень удобна. На следующих уроках мы будем использовать свойство Cells объекта рабочего листа Worksheet.
Вот и все. Простейшие действия записаны, но вот только такую запись на практике не применить.
Второй способ, запись кода VBA вручную. Данный способ будет рассмотрен на следующем уроке и на всех последующих, будем работать только вторым способом.
Ну и напоследок, видео-демонстрация записи макроса.
Видео: Запись макроса в Excel