Как создать макрос в Excel?

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

Давайте поподробнее разберемся в тонкостях работы с макросами.

Введение

Зачастую нам приходится выполнять одни и те же действия в Excel большое количество раз. C такой «рутинной работой» рано или поздно сталкивается почти каждый пользователь Excel — формирование ежедневных и еженедельных отчетов, обработка однообразных данных и т.д.

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

Макрос в Excel — это программа, записанная на языке программирования Visual Basic for Applications (VBA), которая выполняет определенную последовательность действий.

Как записать макрос в Excel?

В Excel есть встроенная программа макрорекордер, которая записывает каждое действие пользователя и переводит его в язык программирования VBA.
Такой способ записи макроса не требует специальных знаний программирования, поэтому запись макроса с помощью макрорекордера — самый простой способ создания макроса.
Однако при работе с макрорекордером есть свои недостатки:

  1. Макрорекордер записывает все Ваши действия, в том числе и случайно сделанные ошибки. Поэтому перед записью макроса четко продумайте список выполняемых действий — это поможет избежать ошибок;
  2. Макрорекордер записывает действия, выполненные только в программе Excel. Переключения на другие программы макрорекордер не записывает;
  3. Макрорекордер записывает только те действия, для которых есть кнопки или команды меню в Excel.

Запись макроса макрорекордером

Чтобы записать макрос в Excel нужно в нижней панели нажать на кнопку «Запись макроса» или перейти в панели инструментов на вкладку «Вид» в группу «Макросы» и выбрать «Запись макроса»:

Создание макроса

Создание макроса

Настраиваем поля записываемого макроса (можно оставить поля пустыми):

Имя макроса

Выбор имени макроса и сочетания клавиш

  1. Имя макроса — произвольное имя на русском или английском языке;
  2. Сочетание клавиш — комбинация клавиш, которой в дальнейшем будет запускаться макрос;
  3. Сохранить в — книга в которой будет сохраняться макрос.

Остановить запись макроса можно двумя способами: в нижней панели нажать на кнопку «Остановить запись» или перейти в панели инструментов на вкладку «Вид» в группу «Макросы» и выбрать «Остановить запись»:

Как выполнить макрос в Excel?

Чтобы выполнить и запустить макрос можно нажать выбранное сочетание клавиш или перейти на вкладку «Вид» в группу «Макросы», выбрать «Макросы» и нажать кнопку «Выполнить» или нажать сочетание клавиш Alt+F8:

Выбор макроса

Выбор макроса

Просмотр кода макроса

Для просмотра кода макроса нужно перейти на вкладку «Вид» в группу «Макросы» и выбрать «Макросы»,а затем нажать кнопку «Изменить»:

Код макроса

Код макроса

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

Резюме

Для создания макроса в Excel нужно выполнить следующие шаги:

  1. Создание макроса. Выбрать на панели инструментов «Вид» -> «Макросы» -> «Запись макроса» и при необходимости заполнить настройки макроса;
  2. Запись макроса. Выполнить требуемые действия;
  3. Остановить запись макроса. Выбрать на панели инструментов «Вид» -> «Макросы» -> «Остановить запись».

Удачи вам и до скорых встреч на страницах блога Tutorexcel.ru!

Поделиться с друзьями:
Поиск по сайту:

Комментарии (7)

  1. Vavanina

    что мне надо сделать чтобы не запускать его постоянно в VB при открытии документа, а что бы он делал это сам автоматически. И еще вопрос можно ли как-то в поле со списком или в combobox вставить названия таблиц, и при выборе определенного названия в определенном диапазоне открывалась нужная таблица? Спасибо.

    1. tutorexcel Автор поста

      Вам необходимо зайти в VBA, выбрать в редакторе модуль «ЭтаКнига» и затем в код модуля добавить стандартный макрос:

      Workbook_Open – событие, происходящее при открытии книги. Соответственно, данный макрос будет автоматически запускаться при каждом открытии данной книги.

  2. Вячеслав

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

  3. 0mega

    Доброго времени суток.

    Есть книга с несколькими макросами
    Макрос_1
    Макрос_2
    Макрос_n

    В каждом макросе есть одна и таже операция ( напр Range(«D4:F8»). Clear)
    Здесь разумно сделать еще один «Clear_Макрос»

    Как прописать команду чтобы машина прерывала выполнение Макроса_n и переходила на Clear_Макрос, а потом возвращалась и продолжала выполнять Макрос_n ?

    т.е. меня интересут что-то аналогичное GoTo — Return которое работает между мкросами
    Спасибо

    1. tutorexcel Автор поста

      Вы можете прямо в теле макроса (1, 2, … , n) вызвать другой макрос (Clear).
      Попробуйте в нужном месте исходного макроса написать Call Clear_Макрос.

      1. 0mega

        спасибо. за оперативный ответ.
        все получилось .

        А выполнимо ли такое «Хочу»

        sub Clear_Макрос ()
        Range(Cells(3, 4), (8, i)). Clear
        End Sub

        sub Макрос_1 ()

        i=7
        Call Clear_Макрос

        End

        sub Макрос_2 ()

        i=4
        Call Clear_Макрос

        End

        я хочу чтобы вместе с командой Call передавалось значение i
        И если Clear_Макрос получил вызов от Макрос_2 тогда значение i на Clear_Макрос , было бы равно 4

        чтобы Clear_Макрос менял свою формулу на Range(Cells(3, 4), (8, 4)) или Range(Cells(3, 4), (8, 7)).
        т.е. я хочу в «чужой монастырь со своим уставом»

        1. tutorexcel Автор поста

          Да, так тоже можно.
          Нужно в макросе Clear_Макрос прописать нужные аргументы (в данном случае только 1 переменная i), а затем при вызове макроса указать численные значения этих аргументов.

Добавить комментарий

Ваш e-mail не будет опубликован.