Работа с макросами excel для чайников

Что записывает макрос?

Теперь перейдем к редактору кода и посмотрим что у нас получилось.

Вот шаги по открытию редактора VB в Excel:

  1. Перейдите на вкладку “Разработчик”.
  2. В группе “Код” нажмите кнопку “Visual Basic”.

Вы также можете использовать комбинацию клавиш Alt + F11 и перейти в редактор кода VBA.

Рассмотрим сам редактор кода. Далее коротко опишем интерфейс редактора.

  • Панель меню: содержит команды, которые можно использовать во время работы с редактором VB.
  • Панель инструментов – похожа на панель быстрого доступа в Excel. Вы можете добавить к ней дополнительные инструменты, которыми часто пользуетесь.
  • Окно проектов (Project Explorer) – здесь Excel перечисляет все книги и все объекты в каждой книге. Например, если у нас есть книга с 3 рабочими листами, она появится в Project Explorer. Здесь есть несколько дополнительных объектов, таких как модули, пользовательские формы и модули классов.
  • Окно кода – собственно сам код VBA размещается в этом окне. Для каждого объекта, указанного в проводнике проекта, есть окно кода, например, рабочие листы, книги, модули и т. д. В этом уроке мы увидим, что записанный макрос находится в окне кода модуля.
  • Окно свойств – вы можете увидеть свойства каждого объекта в этом окне. Я часто использую это окно для обозначения объектов или изменения их свойств.
  • Immediate Window (окно предпросмотра) – На начальном этапе оно вам не пригодится. Оно полезно, когда вы хотите протестировать шаги или во время отладки. Он по умолчанию не отображается, и вы можете его отобразить, щелкнув вкладку «View» и выбрав опцию «Immediate Window».

Когда мы записали макрос “ВводТекста”, в редакторе VB произошли следующие вещи:

  • Был добавлен новый модуль.
  • Макрос был записан с именем, которое мы указали – “ВводТекста”
  • В окне кода добавлена новая процедура.

Поэтому, если вы дважды щелкните по модулю (в нашем случае модуль 1), появится окно кода, как показано ниже.

Вот код, который записан макрорекодером:

В VBA, любая строка , которая следует за ‘ (знак апострофа) не выполняется. Это комментарий, который предназначен только для информационных целей. Если вы удалите первые пять строк этого кода, макрос по-прежнему будет работать.

Теперь давайте пробежим по каждой строке кода и опишем что и зачем.

Код начинается с Sub, за которым следует имя макроса и пустые круглые скобки. Sub – сокращение для подпрограммы. Каждая подпрограмма (также называемая процедурой) в VBA начинается с Sub и заканчивается End Sub.

  • Range(“A2”).Select – эта строка выбирает ячейку A2.
  • ActiveCell.FormulaR1C1 = «Excel» – эта строка вводит текст “Excel” в активной ячейке. Поскольку мы выбрали ячейку A2 в качестве первого шага, она становится нашей активной ячейкой.
  • Range(“A3”).Select – выбор ячейки A3. Это происходит, когда мы нажимаем клавишу Enter после ввода текста, результатом которого является выбор ячейки A3.

Надеюсь, что у вас есть некоторое базовое понимание того, как записывать макрос в Excel.

Обращаем внимание, что код, записанный через макрорекордер, как правило, не является эффективным и оптимизированным кодом. Макрорекордер часто добавляет дополнительные ненужные действия

Но это не значит, что не нужно пользоваться макрорекодером. Для тех, кто только изучает VBA , макрорекордер может быть отличным способом проанализировать и понять как все работает в VBA.

Excel макросы самоучитель

Макрос — это программа, автоматизирующая выполнение различных часто повторяющихся операций. Понятие макроса и управление его записью и применением аналогичны рассмотренным в текстовом процессоре Word.

Основной задачей пользователя является аккуратное выполнение требуемой последовательности операций в реальной таблице при включенном макрорекордере. Макрорекордер преобразует выполняемые действия в последовательность команд языка VBA.

Работая с книгой Excel, пользователь может записать несколько макросов. Все они сохраняются в VBA-модуле. Запуск макроса выполняется одним из трех способов:

  • с помощью “горячих” клавиш;
  • посредством выбора имени макроса в меню;
  • щелчком мыши по графическому объекту, связанному с макросом.

Начало записи макроса

  1. Обратитесь к меню Сервис/Запись макроса. /Начать запись. .
  2. В окне “Запись макроса” укажите имя макроса.
  3. Если запуск макроса планируется через меню или “горячие” клавиши, то нажмите кнопку “Параметры” и задайте имя пункта меню или (и) сочетание клавиш.
  4. Нажмите “Ok” . Признак начала записи — появление небольшого окна с кнопкой “Остановить запись” .

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

Начинать запись макроса следует после предварительного планирования действий. Рекомендуется потренироваться в выполнении записываемых операций без запуска макрорекордера. Если при записи выполнено неверное действие, следует отменить его, нажав кнопку “Отменить” на основной панели инструментов.

Завершение записи

  1. Нажмите кнопку “Остановить запись” .
  2. Если запуск макроса планируется с помощью графического объекта, то выберите требуемый объект на панели “Формы” и разместите его на рабочем листе. Для вызова указанной панели следует обратиться к меню Вид/Панели инструментов. .После размещения объекта типа “Кнопка” откроется окно “Назначить макрос объекту” , в котором требуется указать имя макроса и нажать “Ok” . Для других объектов необходимо щелкнуть по нему правой кнопкой мыши, после чего из выпадающего меню следует выбрать пункт “Назначить макросу” и указать связь с макросом.
  3. Опробуйте действие макроса, предварительно восстановив исходное состояние таблицы.

Пример записи макроса

Пусть требуется для выделенного диапазона ячеек, содержащих числа, установить режим форматирования в числовом виде с точностью до одного десятичного знака. Соответствующий макрос должен запускаться с помощью графического объекта “Кнопка”.

Выделить диапазон клеток, в котором задается формат

Важно сделать это до запуска макрорекордера, а не после, поскольку макрос должен быть применим для любого выделенного участка. В противном случае он будет форматировать только один диапазон.
Запустить макрорекордер.
Обратиться к меню Формат/Ячейки

и на вкладке “Число” выбрать числовой формат и “Число десятичных знаков” — 1.
Щелкнуть мышью на любой ячейке, чтобы снять выделение диапазона.
Нажать кнопку “Остановить запись” .
Вызвать панель “Элементы управления” , щелкнуть по объекту “Кнопка” и, установив указатель мыши на свободное место листа, “растянуть” объект. Сменить надпись на кнопке можно двойным щелчком мыши по стандартной надписи, но если объект выделен. Выделяется объект правой кнопкой мыши и нажатием клавиши Esc для закрытия всплывающего меню форматирования объекта.
В окне “Назначить макрос объекту” указать имя макроса, связываемого с кнопкой и нажать “Ok” .
Щелкнуть мышью вне объекта “Кнопка” , чтобы подготовить макрос к работе.
Восстановить исходные данные и опробовать работу макроса для различных выделяемых диапазонов.

На рисунке показан диапазон C1:E2, преобразованный в требуемый формат макросом, запускаемым кнопкой с надписью “Десятичный формат”.

Как написать макрос в Excel — создание, запись и редактирование VBA макросов в Excel

VBA считается стандартным языком написания сценариев для приложений Microsoft, и в настоящее время он входит в состав всех приложений Office и даже приложений других компаний. Следовательно, овладев VBA для Excel, вы сможете сразу перейти к созданию макросов для других программных продуктов Microsoft. Более того, вы сможете создавать полноценные программные продукты, одновременно использующие функции самых разных приложений.

Как включить макросы в Excel

По умолчанию, вкладка, отвечающая за управление и навигацию макросов в Excel, скрыта. Чтобы активировать данную опцию перейдите по вкладке Файл в группу Параметры. В появившемся диалоговом окне Параметры Excel, перейдите по вкладке Настройка ленты, в правом поле со списком ставим маркер напротив вкладки Разработчик. Данные действия актуальны для версий Excel 2010 и старше.

На ленте появиться новая вкладка Разработчик с элементами управления автоматизации Excel.

Написание макросов в Excel

Во вкладке Разработчик в группе Код, нажмите кнопку Запись макроса. Появиться диалоговое окно Запись макроса, которая запрашивает некоторую информацию о будущем записываемом коде. Если вы впервые создаете макрос, можете просто нажать кнопку ОК. С данного момента Excel будет фиксировать каждое действие пользователя в модуле VBA, будь то ввод данных, форматирование или создание диаграмм. Чтобы остановить запись макроса, нажмите кнопку Остановить запись, которая находится в той же группе Код.

Вы также можете воспользоваться альтернативным вариантом записи макросов, воспользовавшись кнопкой Запись макроса, которая находится в левом нижнем углу рабочей книги Excel (правее статуса Готово).

Теперь вы можете посмотреть список всех созданных макросов, нажав на кнопку Макрос, находящуюся в группе Код. В появившемся диалоговом окне вы можете дать более описательные имена своим кодам или задать сочетания клавиш, которые бы запускали тот или иной макрос. Альтернативным вариантом запуска данного окна является нажатие клавиш Alt + F8.

Редактирование макросов

Поздравляю! Вы написали свой первый макрос. Логичным будет проверить теперь, какой же код сгенерировал нам Excel. Сгенерированный код написан на языке VBA (Visual Basic for Applications). Чтобы увидеть его, нужно открыть Редактор VB (VBE), который запускается нажатием клавиш Alt + F11 или кнопкой Visual Basic на вкладке Разработчик.

Чтобы избежать путаницы в редакторе вы можете работать только с одной вкладкой рабочей книги, листа или модуля. Так выглядит редактор в реалии.

Предлагаю на данном этапе подробнее изучить различные окна и меню редактора VBA. В дальнейшем это поможет вам сэкономить кучу времени.

Для просмотра кода, щелкните по ветке Modules в окне проектов и дважды щелкните по появившейся ветке Module1. Редактор откроет окно с кодом, как изображено на картинке.

Здесь можно редактировать сгенерированный код, который был записан при работе в Excel. К примеру, вам требуется заполнить определенный столбец значениями от 1 до 10. У вас уже есть первые три шага, которые вводят значения 1, 2 и 3 в первые три ячейки столбца А. Нам необходимо дописать оставшиеся семь шагов.

Краткое руководство: создание макроса

​ 0 Then MsgBox​​ (Ctrl + Up,​ простые правила, которые​ Excel.​ «Visual Basic», которая​ выделяем его, и​вручную.​ макросов см. в​ автоматически, поэтому ее​ резервируют. Рабочему листу​ Всего в этом​ чисел из диапазона​ ячейку С1.​Он выглядит следующим образом:​ освоения. Как показывает​ к которому привязан​ iRow = 1​ «Строка » &​ и т.п.). Позиционируйте​ существенно влияют на​Как автоматически рисовать​

​ расположена в самом​ жмем на кнопку​Воспользовавшись первым вариантом, вы​ статье Создание и​ текст может содержать​ присваивается новое название.​ языке программирования, созданном​ от 1 до​Активную часть кода завершает​Sub program ()​ практика, азами VBA​ макрос, происходит каждый​ ReDim dCellValues(1 To​ sFindText & «​ курсор, так чтобы​

​ их качество в​ границы в таблицах​ начале ленты разработчика.​ «Выполнить».​ просто записываете определенные​ удаление макросов.​ неточности и грамматические​ Например, «Օтчет».​ специально для написания​ 11, то пишем:​ команда ActiveSheet.Paste. Она​’Наш код​

Процедура

​ раз при выделении​​ 10) ‘Цикл Do​

​ не найдена» Else​ вы могли добавить,​​ момент записи и​​ с помощью макроса?​После этого, открывается знакомое​Можно поступить ещё проще,​ действия в программе​Сведения о запуске макросов​ ошибки. Для нас​

​Для написания программы автоматического​​ приложений в «Эксель»​

​For i = 1​​ означает запись содержания​​End Sub​​ пользователи, которые не​​ ячейки или диапазона​​ Until перебирает последовательно​​ MsgBox «Строка «​

​ изменить или удалить​​ эффективность при выполнении.​​ Автоматизированное форматирование границ​​ нам окно редактора​​ и не вызывать​​ Microsoft Excel, которые​​ см
в статье​ важно, чтобы эта​​ заполнения шаблона, необходимо​​ и Word, около​ to 10 step​

​ выделенной ячейки (в​Обратите внимание, что строка​ имеют навыков профессионального​ ячеек на рабочем​

​ ячейки столбца A​​ & sFindText &​​ данные внутри таблицы​​​​ ячеек по разным​

​ VBE.​​ даже окно выбора​

​ выполняете в данный​ Запуск макроса.​ статья была вам​

​ выбрать обозначения. Они​ 160 функций. Их​​ 1 Next.​​ данном случае А1)​​ «’Наш код» будет​​ программирования. К особенностям​​ листе. В нашем​​ активного листа ‘и​ » найдена в​​ по мере необходимости.​​5 простых советов, которые​ цветам, стилям и​

​Программист пишет там код​ макросов. Мы же​ момент времени. Потом,​Действия перед записью макроса​ полезна. Просим вас​

​ будут использоваться для​ можно разделить на​Здесь step — шаг.​ в выделенную ячейку​

Дальнейшие действия

  • ​ выделена другим цветом​ VBA относится выполнение​ случае при выделении​ извлекает их значения​

  • ​ ячейке A» &​Использование мыши для навигации​ помогут в создании​

Процедура

​ толщине линий используя​​ макроса вручную.​

​ помним, что записали​ можно будет воспроизвести​   ​​ уделить пару секунд​​ переменных:​​ несколько больших групп.​​ В данном случае​ С1.​ (зеленым). Причина в​

  1. ​ скрипта в среде​​ ячейки​​ в массив до​​ iRowNumber End If​​ является более сложным​​ макросов без программирования.​​ макрос.​

  2. ​Как видим, макросы в​​ сочетание «горячих клавиш»​​ эту запись. Данный​​Убедитесь в том, что​​ и сообщить, помогла​​NN– номер текущей строки​​ Это:​ он равен двум.​​Циклы VBA помогают создавать​​ апострофе, поставленном в​

​ офисных приложений.​​B1​

  1. ​ тех пор, пока​​ End Sub​​ и не так​​ Воспользуйтесь этими простыми​​Макрос для объединения повторяющихся​

  2. ​ Microsoft Excel могут​​ для быстрого вызова​​ способ очень легкий,​​ на ленте отображается​​ ли она вам,​​ таблицы;​​Математические функции. Применив их​ По умолчанию отсутствие​​ различные макросы в​​ начале строки, который​Недостатком программы являются проблемы,​

  3. ​, на экран выводится​ не встретится пустая​Следующая процедура​ надежным в момент​

  4. ​ советами, которые позволяют​​ ячеек в таблице​​ значительно ускорить выполнение​​ макроса. В нашем​​ и не требует​​ вкладка​​ с помощью кнопок​

​TP и TF –​​ к аргументу, получают​

​ этого слова в​ Excel.​ обозначает, что далее​

​ связанные с совместимостью​ окно с сообщением.​​ ячейка Do Until​​Sub​ записи. Когда дело​ быстро и просто​ Excel.​​ рутинных и однообразных​​ случае, это Ctrl+М.​ знания кода, но​

​Разработчик​ внизу страницы. Для​ планируемый и фактический​ значение косинуса, натурального​ цикле означает, что​

​Циклы VBA помогают создавать​ следует комментарий.​ различных версий. Они​’Данный код показывает​

Дальнейшие действия

​ IsEmpty(Cells(iRow, 1)) ‘Проверяем,​– пример использования​ доходит до макросов,​ создавать качественные макропрограммы​Практический пример и​ процессов. Но, в​

support.office.com>

8) Изменение цвета внутри и шрифтов

Этот макрос изменяет цвета внутри и у источника ячеек в соответствии с буквой ячеек.

Sub Colorir_interior_letra () Для N = 1 до диапазона («O65536»). End (xlUp) .Row

Выберите диапазон шкалы («O» и N) Случай “А” Диапазон («O» и N) .Interior.ColorIndex = 3 Диапазон («O» и N) .Font.ColorIndex = 1

Случай “B” Диапазон («O» и N) .Interior.ColorIndex = 4 Диапазон («O» и N) .Font.ColorIndex = 2

Случай “C” Диапазон («O» и N) .Interior.ColorIndex = 5 Диапазон («O» и N) .Font.ColorIndex = 3

Случай “D” Диапазон («O» и N) .Interior.ColorIndex = 7 Диапазон («O» и N) .Font.ColorIndex = 12

Case Else Диапазон («O» и N) .Interior.ColorIndex = 6 Диапазон («O» и N) .Font.ColorIndex = 4 End Select

Макросы

Макрос — это маленькая программа, написанная на скриптовом языке, предназначенная для решения следующих (к примеру) задач:

Чтобы открыть интерфейс макроса в игре, введите «/ macro» или «/ m».
Выберите между вкладками «Общие» и «Макросы для конкретного персонажа». Затем нажмите кнопку «Создать» в окне макроса.
Выберите имя и значок, чтобы вы могли легко узнать свой макрос, затем нажмите «ОК».
Выберите новый макрос и используйте текстовый редактор ниже, чтобы написать команду для макроса. Также вы можете скопировать готовый макрос и просто его вставить..
Нажмите кнопку «Сохранить» и перетащите значок макроса на панель заклинаний чтобы использовать его, как любое другое заклинание из вашей книги заклинаний.
Чтобы закрыть окно, нажмите «Выход» или просто нажмите Escape.

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

10 Примеры основных макросов в Excel

Чтобы в полной мере воспользоваться Excel Макросы незаменимы. Макрос может быть определен как последовательность команд (последовательно), которые могут быть щелчками, нажатиями клавиш или даже небольшими строками кода с более продвинутыми функциями. Эти последовательности записываются в модуль VBA и выполняются при необходимости.

Основным преимуществом макроса является выигрыш времени, которое он обеспечивает, ведь он автоматизирует то, что должно быть сделано вручную в несколько этапов. Очень используется, когда вам нужно выполнить один и тот же набор задач несколько раз.

Макрос может быть создан двумя различными способами:

  • Использование Macro Recorder: В этой процедуре Excel сохраняет каждое действие, которое будет частью макроса, а затем средство записи макросов преобразует эти действия в команды Visual Basic для приложений (VBA).
  • Использование VBA: Если вы немного разбираетесь в программировании или даже владеете языком VBA, вы можете создавать свои макросы самостоятельно. Для этого просто используйте редактор VBA, присутствующий в последних версиях Microsoft Excel.

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

Первая программа на VBA Excel

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

  1. Откройте стандартный модуль двойным кликом по его ссылке в проводнике. Поместите в него курсор и нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.

В результате откроется окно добавления шаблона процедуры (Sub).

  1. Наберите в поле «Name» имя процедуры: «Primer1», или скопируйте его отсюда и вставьте в поле «Name». Нажмите кнопку «OK», чтобы добавить в модуль первую и последнюю строки процедуры.

Имя процедуры может быть написано как на латинице, так и на кириллице, может содержать цифры и знак подчеркивания. Оно обязательно должно начинаться с буквы и не содержать пробелы, вместо которых следует использовать знак подчеркивания.

  1. Вставьте внутрь шаблона процедуры следующую строку: MsgBox “Привет” .

Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».

  1. Проверьте, что курсор находится внутри процедуры, и запустите ее, нажав клавишу «F5». А также, запустить процедуру на выполнение можно, нажав на треугольник (на изображении под пунктом меню «Debug») или на кнопку «Run Sub/UserForm» во вкладке «Run» главного меню редактора VBA Excel.

Если вы увидели такое сообщение, как на изображении, то, поздравляю – вы написали свою первую программу!

Отображение в Microsoft Office 2007 и 2010

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

Office 2007

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

В офисе 2007 первоначально необходимо зайти в Меню, расположенное в верхнем левом углу, после чего сразу же осуществить переход в «Параметры Excel».

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

После осуществления последовательных переходов на экране отобразится подменю «Параметры макросов», предоставляющее возможность вносить изменения в процесс отображения, написания и запуска различных макрокоманд.

В новом открывшемся окне переключатель нужно установить на последней строке «Включить все макросы». Система, конечно, предупредит, что такие действия могут позволить осуществлять запуск и опасных программ. Однако если пользователь уверен в своих действиях, на компьютере установлена надёжная противовирусная защита, то опасаться такого предупреждения нет смысла.

Также включить и отключить макрокоманды в Excel 2007 можно более простым способом, ничем не отличающимся от включения их в Excel 2010.

Office 2010

Включить и отключить макрокоманды в Excel 2010 можно, воспользовавшись меню «Разработчик». Однако данное меню не всегда активно в табличном редакторе 2010, особенно в момент первого запуска офисного приложения, поэтому первоначально следует совершить определённые действия, чтобы создать данное меню на панели инструментов. Специалисты рекомендуют выносить на панель инструментов подменю, к которым приходится достаточно часто обращаться в процессе выполнения различных задач.

Для этого необходимо кликнуть по меню «Файл», далее перейти в «Параметры», а затем в «Настройку ленты». С правой стороны будет находиться список, среди предложенных вариантов пользователь может выбрать те меню, в которых он наиболее часто будет нуждаться, а потому желает, чтобы они постоянно были отображены на панели инструментов. В частности, в этот момент необходимо установить переключатель на строке «Разработчик» и нажать «Ок». После этого данное меню отобразится в верхней части Excel 2010.

Теперь включить и отключить макрокоманды будет несложно, достаточно будет навести курсор на «Разработчик», далее перейти на строку «Безопасность макросов», после чего откроется уже знакомое меню «Параметры макросов», в котором выбирается последний пункт.

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

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

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

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

Итак, макрокоманды в табличных редакторах 2003, 2007 и 2010 способны восприниматься большинством пользователей в качестве лучших помощников, позволяющих рутинную работу автоматизировать и повысить её результативность.

Вариант 1: Автоматическая запись макросов

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

Подробнее: Включение и отключение макросов в Microsoft Excel

Когда все готово, приступаем к записи.

  1. Перейдите на вкладку «Разработчик». Кликните по кнопке «Запись макроса», которая расположена на ленте в блоке инструментов «Код».

Открывается окно настройки записи макроса. Тут можно указать любое имя для него, если установленное по умолчанию вас не устраивает. Главное, чтобы имя это начиналось с буквы, а не с цифры, а также в названии не должно быть пробелов. Мы оставили название по умолчанию – «Макрос1».
Тут же при желании можно установить сочетание клавиш, при нажатии на которые макрос будет запускаться. Первой клавишей обязательно должна быть Ctrl, а вторую пользователь устанавливает самостоятельно. Мы в качестве примера установили клавишу М.
Далее следует определить, где будет храниться макрос. По умолчанию он расположен в этой же книге (файле), но при желании можно установить хранение в новой книге или в отдельной книге макросов. Мы оставим значение по умолчанию.
В самом нижнем поле можно оставить любое подходящее по контексту описание макроса, но это делать не обязательно. Когда все настройки выполнены, жмем на кнопку «OK».

После этого все ваши действия в данной книге (файле) Excel будут записываться в макрос до тех пор, пока вы сами не остановите запись.
Для примера запишем простейшее арифметическое действие: сложение содержимого трех ячеек (=C4+C5+C6).

Когда алгоритм был выполнен, щелкаем на кнопку «Остановить запись». Эта кнопка преобразовалась из кнопки «Запись макроса» после включения записи.

Запуск макроса

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

  1. Кликаем в том же блоке инструментов «Код» по кнопке «Макросы» или жмем сочетание клавиш Alt + F8.

После этого открывается окно со списком записанных макросов. Ищем макрос, который мы записали, выделяем его и кликаем на кнопку «Выполнить».

Можно поступить еще проще и не вызывать даже окно выбора макросов, так как на первом этапе мы задали сочетание клавиш для быстрого вызова макроса. В нашем случае это Ctrl + М. Жмем данную комбинацию на клавиатуре, после чего он запускается.
Как видим, он выполнил в точности все те действия, которые были записаны ранее.

Редактирование макроса

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

  1. Снова щелкаем на кнопку «Макросы». В открывшемся окне выбираем нужный и кликаем по кнопке «Изменить».

Открывается «Microsoft Visual Basic» (VBE) – среда, где происходит их редактирование.

Запись каждого макроса начинается с команды , а заканчивается командой . Сразу же после указывается имя макроса. Оператор указывает выбор ячейки. Например, при команде «Range(«C4»).Select» выбирается ячейка «C4». Оператор используется для записи действий в формулах и других расчетов.
Попытаемся немного изменить макрос, дописав выражение:

Выражение заменим на .

Закрываем редактор и запускаем макрос. Как видим, вследствие введенных нами изменений была добавлена дополнительная ячейка с данными. Она также была включена в расчет общей суммы.
В случае если макрос слишком большой, его выполнение может занять значительное время, но внесением ручного изменения в код мы можем ускорить процесс. Добавляем команду . Она позволит сохранить вычислительные мощности, а значит, ускорить работу. Это достигается путем отказа от обновления экрана во время выполнения вычислительных действий. Чтобы возобновить обновление после выполнения макроса, в его конце пишем команду .
Добавим также команду в начало кода, а в его конец дописываем . Этим мы сначала отключаем автоматический пересчет результата после каждого изменения ячеек, а в конце макроса – включаем. Таким образом, Excel подсчитает результат только один раз, а не будет его постоянно пересчитывать, чем сэкономит время.

Корректируем макрос

Созданный макрос можно изменить. Самая распространенная причина, которая приводит к такой необходимости – сделанные при записи ошибки. Вот как можно отредактировать макрос:

Нажимаем кнопку “Макросы” (или комбинацию Ctrl+F8).
В появившемся окошке выбираем наш макрос и щелкаем “Изменить”.
На экране отобразится окно редактора “Microsoft Visual Basic”, в котором мы можем внести правки. Структура каждого макроса следующая:
открывается с команды “Sub”, закрывается – “End Sub”;

после “Sub” отображается имя макроса;
далее указано описание (если оно есть) и назначенная комбинация клавиш;
команда “Range(“…”).Select” возвращает номер ячейки. К примеру, “Range(“B2″).Select” отбирает ячейку B2.
В строке “ActiveCell.FormulaR1C1” указывается значение ячейки или действие в формуле.

Давайте попробуем скорректировать макрос, а именно, добавить в него ячейку B4 со значением 3

В код макроса нужно добавить следующие строки: Range(“B4”).Select ActiveCell.FormulaR1C1 = “3”
Для результирующей ячейки D2, соответственно, тоже нужно изменить начальное выражение на следующее: ActiveCell.FormulaR1C1 = “=RC*RC*RC” .Примечание: Обратите внимание, что адреса ячеек в данной строке (ActiveCell.FormulaR1C1) пишутся в стиле R1C1.
Когда все готово, редактор можно закрывать (просто щелкаем на крестик в правом верхнем углу окна).
Запускаем выполнение измененного макроса, после чего можем заметить, что в таблице появилась новая заполненная ячейка (B4 со значением “3”), а также, пересчитан результат с учетом измененной формулы.
Если мы имеем дело с большим макросом, на выполнение которого может потребоваться немало времени, ручное редактирование изменений поможет быстрее справиться с задачей.
Добавив в конце команду Application.ScreenUpdating = False мы можем ускорить работу, так как во время выполнения макроса, изменения на экране отображаться не будут.
Если потребуется снова вернуть отображение на экране, пишем команду: Application.ScreenUpdating = True .

Чтобы не нагружать программу пересчетом после каждого внесенного изменения, в самом начале пишем команду Application.Calculation = xlCalculationManual , а в конце – Application.Calculation = xlCalculationAutomatic. Теперь вычисление будет выполняться только один раз.

Что нельзя сделать с помощью макрорекодера?

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

  • Вы не можете выполнить код без выбора объекта. Например, если вы хотите, чтобы макрос перешел на следующий рабочий лист и выделил все заполненные ячейки в столбце A, не выходя из текущей рабочей таблицы, макрорекодер не сможет этого сделать. В таких случаях вам нужно вручную редактировать код.
  • Вы не можете создать пользовательскую функцию с помощью макрорекордера. С помощью VBA вы можете создавать пользовательские функции, которые можно использовать на рабочем листе в качестве обычных функций.
  • Вы не можете создавать циклы с помощью макрорекордера. Но можете записать одно действие, а цикл добавить вручную в редакторе кода.
  • Вы не можете анализировать условия: вы можете проверить условия в коде с помощью макрорекордера. Если вы пишете код VBA вручную, вы можете использовать операторы IF Then Else для анализа условия и запуска кода, если true (или другой код, если false).
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector