Как записать макрос в Excel? Пошаговая инструкция.
Для начала незначительно о терминологии.
Макрос – это код, написанный на интегрированном в Excel языке VBA (Visual Basic for Application). Макросы могут создаваться как вручную, так и записываться автоматом с помощью так именуемого макрорекодера.
Макрорекодер – это инструмент в Excel, который пошагово записывает все что вы выполняете в Excel и преобразует это в код на языке VBA. Макрорекодер делает чрезвычайно подробный код (как мы увидим позже), который вы можете при необходимости отредактировать в дальнейшем.
Записанный макрос можно будет запускать неограниченное количество раз и Excel повторит все записанные шаги. Это значит, что даже ежели вы ничего не понимаете о VBA, вы сможете заавтоматизировать некие задачки, просто записав свои шаги и потом повторно применять их позже.
Теперь давайте погрузимся и поглядим, как записать макрос в Excel.
Отображение вкладки "Разработчик" в ленте меню
Перед тем как записывать макрос, необходимо добавить на ленту меню Excel вкладку "Разработчик". Для этого выполните последующие шаги:
- Щелкните правой клавишей мыши по хоть какой из имеющихся вкладок на ленте и нажмите «Настроить ленту». Он откроет диалоговое окно «Параметры Excel».
- В диалоговом окне «Параметры Excel» у вас будут характеристики «Настроить ленту». Справа на панели «Основные вкладки» установите флаг «Разработчик».
- Нажмите «ОК».
В итоге на ленте меню покажется вкладка "Разработчик"
Запись макроса в Excel
Теперь давайте запишем очень простой макрос, который выбирает ячейку и вводит в нее текст, к примеру "Excel".
Вот шаги для записи такового макроса:
- Перейдите на вкладку "Разработчик".
- В группе "Код" нажмите клавишу "Запись макроса". Откроется одноименное диалоговое окно.
- В диалоговом окне "Запись макроса" введите имя для собственного макроса, к примеру "ВводТекста". Есть несколько критерий именования, которые нужно соблюдать при назначении макроса. Например, вы не сможете употреблять пробелы меж ними. Обычно я предпочитаю сохранять имена макросов как одно слово, с различными частями с большим первым алфавитом. Вы также сможете применять подчеркивание для разделения 2-ух слов – к примеру, "Ввод_текста".
- Если вы желаете, то сможете задать сочетание клавиш. В этом случае мы будем употреблять ярлычек Ctrl + Shift + N. Помните, что сочетание, которое вы указываете, будет отменять любые имеющиеся горячие клавиши в вашей книге. Например, ежели вы назначили сочетание Ctrl + S, вы не можете употреблять это для сохранения рабочей книжки (вместо этого, каждый раз, когда вы его используете, он выполняет макрос).
- В поле "Сохранить в" удостоверьтесь, что выбрана функция "Эта книга". Этот шаг гарантирует, что макрос является частью рабочей книги.
- Введите описание при необходимости. Обычно я этого не делаю, но ежели у вас много макросов, лучше указать, чтоб в будущем не запамятовать что делает макрос.
- Нажмите "ОК". Как лишь вы нажмете OK, Excel начнет записывать ваши действия. Вы сможете узреть клавишу "Остановить запись" на вкладке "Разработчик", которая показывает, что выполняется запить макроса.
- Выберите ячейку A2.
- Введите текст "Excel" (или вы сможете употреблять свое имя).
- Нажмите кнопку Enter. Вы попадете на ячейку A3.
- Нажмите клавишу "Остановить запись" на вкладке "Разработчик".
Поздравляем! Вы лишь что записали собственный 1-ый макрос в Excel. Хотя макрос не делает ничего полезного, но он поможет нам понять как работает макрорекордер в Excel.
Теперь давайте разглядим код который записал макрорекодер. Выполните последующие деяния, чтоб открыть редактор кода:
- Удалите текст в ячейке A2. Это необходимо, чтоб проверить будет ли макрос вставлять текст в ячейку A2 либо нет.
- Выберите всякую ячейку – не считая A2. Это необходимо проверить, выбирает ли макрос ячейку A2 либо нет.
- Перейдите на вкладку "Разработчик".
- В группе "Код" нажмите клавишу "Макросы".
- В диалоговом окне "Макрос" щелкните макрос "ВводТекста".
- Нажмите клавишу "Выполнить".
Вы увидите, что как лишь вы нажмете клавишу "Выполнить", текст "Excel" будет вставлен в ячейку A2 и выбрана ячейка A3. Это происходит за миллисекунды. Но на самом деле макрос поочередно выполнил записанные действия.
Примечание. Вы также сможете запустить макрос с помощью сочетания клавиш Ctrl + Shift + N (удерживайте клавиши Ctrl и Shift, а потом нажмите кнопку N). Это тот же самый ярлычек, который мы назначили макросу при его записи.
Что записывает макрос?
Теперь перейдем к редактору кода и поглядим что у нас получилось.
Вот шаги по открытию редактора VB в Excel:
- Перейдите на вкладку "Разработчик".
- В группе "Код" нажмите клавишу "Visual Basic".
Вы также сможете применять комбинацию кнопок Alt + F11 и перейти в редактор кода VBA.
Рассмотрим сам редактор кода. Дальше кратко опишем интерфейс редактора.
- Панель меню: содержит команды, которые можно употреблять во время работы с редактором VB.
- Панель инструментов – похожа на панель скорого доступа в Excel. Вы сможете добавить к ней дополнительные инструменты, которыми нередко пользуетесь.
- Окно проектов (Project Explorer) – тут Excel перечисляет все книжки и все объекты в каждой книге. Например, ежели у нас есть книжка с 3 рабочими листами, она покажется в Project Explorer. Здесь есть несколько доп объектов, таковых как модули, пользовательские формы и модули классов.
- Окно кода – фактически сам код VBA располагается в этом окне. Для каждого объекта, указанного в проводнике проекта, есть окно кода, к примеру, рабочие листы, книжки, модули и т. д. В этом уроке мы увидим, что записанный макрос находится в окне кода модуля.
- Окно свойств – вы сможете узреть характеристики каждого объекта в этом окне. Я нередко использую это окно для обозначения объектов или изменения их свойств.
- Immediate Window (окно предпросмотра) – На исходном шаге оно для вас не понадобится. Оно полезно, когда вы желаете протестировать шаги или во время отладки. Он по умолчанию не отображается, и вы сможете его показать, щелкнув вкладку «View» и выбрав опцию «Immediate Window».
Когда мы записали макрос "ВводТекста", в редакторе VB произошли последующие вещи:
- Был добавлен новейший модуль.
- Макрос был записан с именованием, которое мы указали – "ВводТекста"
- В окне кода добавлена новенькая процедура.
Поэтому, ежели вы два раза щелкните по модулю (в нашем случае модуль 1), покажется окно кода, как показано ниже.
Вот код, который записан макрорекодером:
Sub ВводТекста() ' ' ВводТекста Макрос ' ' Range("A2").Select ActiveCell.FormulaR1C1 = "Excel" Range("A3").Select End Sub
В VBA, неважно какая строчка , которая следует за ' (знак апострофа) не выполняется. Это комментарий, который предназначен лишь для информационных целей. Если вы удалите 1-ые 5 строк этого кода, макрос по-прежнему будет работать.
Теперь давайте пробежим по каждой строке кода и опишем что и зачем.
Код начинается с 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? Если вы используете абсолютную ссылку для записи макроса, код VBA постоянно будет ссылаться на те же ячейки, которые вы использовали. Например, ежели вы выберете ячейку A2 и введете текст "Excel", то каждый раз – независимо от того, где вы находитесь на листе и независимо от того, какая ячейка выбрана, ваш код будет вводить текст "Excel" в ячейку A2.
Если вы используете параметр относительной ссылки для записи макроса, VBA не будет привязываться к определенному адресу ячейки. В этом случае программа будет "двигаться" относительно активной ячейки. К примеру, представим, что вы уже избрали ячейку A1, и вы начинаете запись макроса в режиме относительной ссылки. Теперь вы выбираете ячейку A2, вводите текст Excel и нажмите кнопку Enter. Теперь, ежели вы запустите этот макрос, он не возвратится в ячейку A2, заместо этого он будет передвигаться относительно активной ячейки. Например, ежели выбрана ячейка B3, она переместится на B4, запишет текст "Excel" и потом перейдет к ячейке K5.
Теперь давайте запишем макрос в режиме относительных ссылок:
- Выберите ячейку A1.
- Перейдите на вкладку "Разработчик".
- В группе "Код" нажмите клавишу "Относительные ссылки". Он будет подсвечиваться, указывая, что он включен.
- Нажмите клавишу "Запись макроса".
- В диалоговом окне "Запись макроса" введите имя для собственного макроса. Например, имя "ОтносительныеСсылки".
- В функции "Сохранить в" выберите "Эта книга".
- Нажмите "ОК".
- Выберите ячейку A2.
- Введите текст "Excel" (или иной как для вас нравится).
- Нажмите кнопку Enter. Курсор переместиться в ячейку A3.
- Нажмите клавишу "Остановить запись" на вкладке "Разработчик".
Макрос в режиме относительных ссылок будет сохранен.
Теперь сделайте следующее.
- Выберите всякую ячейку (кроме A1).
- Перейдите на вкладку "Разработчик".
- В группе "Код" нажмите клавишу "Макросы".
- В диалоговом окне "Макрос" кликните на сохраненный макрос "ОтносительныеСсылки".
- Нажмите клавишу "Выполнить".
Как вы заметите, макрос записал текст "Excel" не в ячейки A2. Это вышло, поэтому что вы записали макрос в режиме относительной ссылки. Таким образом, курсор перемещается относительно активной ячейки. Например, ежели вы сделаете это, когда выбрана ячейка B3, она войдет в текст Excel – ячейка B4 и в конечном итоге выберет ячейку B5.
Вот код, который записал макрорекодер:
Sub ОтносительныеСсылки() ' ' ОтносительныеСсылки Макрос ' ' ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "Excel" ActiveCell.Offset(1, 0).Range("A1").Select End Sub
Обратите внимание, что в коде нет ссылок на ячейки B3 либо B4. Макрос употребляет Activecell для ссылки на текущую ячейку и смещение относительно данной нам ячейки.
Не обращайте внимание на часть кода Range(«A1»). Это один из тех случаев, когда макрорекодер добавляет ненадобный код, который не имеет никакой цели и может быть удален. Без него код будет работать отлично.
Что нельзя сделать с помощью макрорекодера?
Макро-рекордер непревзойденно подступает для вас в Excel и записывает ваши четкие шаги, но может для вас не подойти, когда вам нужно сделать что-то большее.
- Вы не сможете выполнить код без выбора объекта. К примеру, ежели вы желаете, чтоб макрос перебежал на последующий рабочий лист и выделил все заполненные ячейки в столбце A, не выходя из текущей рабочей таблицы, макрорекодер не сумеет этого сделать. В таковых вариантах для вас необходимо вручную редактировать код.
- Вы не сможете сделать пользовательскую функцию с помощью макрорекордера. С помощью VBA вы сможете создавать пользовательские функции, которые можно употреблять на рабочем листе в качестве обыденных функций.
- Вы не сможете создавать циклы с помощью макрорекордера. Но сможете записать одно действие, а цикл добавить вручную в редакторе кода.
- Вы не сможете анализировать условия: вы сможете проверить условия в коде с помощью макрорекордера. Если вы пишете код VBA вручную, вы сможете использовать операторы IF Then Else для анализа условия и пуска кода, ежели true (или иной код, ежели false).
Расширение файлов Excel, которые содержат макросы
Когда вы записываете макрос либо вручную записываете код VBA в Excel, для вас нужно сохранить файл с расширением файла с поддержкой макросов (.xlsm).
До Excel 2007 был достаточен один формат файла – .xls. Но с 2007 года .xlsx был представлен как обычное расширение файла. Файлы, сохраненные как .xlsx, не могут содержать в для себя макрос. Поэтому, ежели у вас есть файл с расширением .xlsx, и вы записываете / записываете макрос и сохраняете его, он будет предупреждать вас о сохранении его в формате с поддержкой макросов и покажет для вас последующее диалоговое окно:
Если вы выберете "Нет", Excel сохранить файл в формате с поддержкой макросов. Но ежели вы нажмете "Да", Excel автоматом удалит весь код из вашей книжки и сохранит файл как книжку в формате .xlsx. Поэтому, ежели в вашей книжке есть макрос, для вас необходимо сохранить его в формате .xlsm, чтоб сохранить этот макрос.
Два метода, как включить макросы в Excel 2010
Если вы желаете существенно повысить свою производительность во время работы в програмке Excel, то лучшем выходом будет внедрение макросов. Ежели кратко, то они содержать в для себя набор команд, которые разрешают быстро выполнить какое-то сложное действие, требующее последовательного использования разных инструментов, в одно нажатие клавиши. Дальше речь пойдет о том, как включить макросы в Excel 2010 года выпуска, но ежели вы пользуетесь иной версией программы, дочитайте статью до конца. В крайнем разделе будет поведано про внедрение макросов в остальных версиях программы.
Способ №1: Через меню “Разработчика”
Проще всего включить макросы в Excel 2010, как и в хоть какой иной версии, через меню разраба, но неувязка заключается в том, что оно по умолчанию отключено, и предварительно нужно вывести его на экран. Вот, как это сделать:
- Запустите программу.
- Выберите в главной строке клавишу “Файл”.
- В появившемся меню выберите пункт “Параметры”.
- В новеньком окне, которое покажется опосля нажатия, для вас нужно перейти в категорию “Разработчик”.
- Теперь в правом окошке установите галочку напротив “Разработчик”.
- Кликните на клавишу “ОК”.
Теперь, посреди иных вкладок с инструментами возникла новенькая, лишь что избранная нами. Соответственно можно перебегать к вопросцу о том, как включить макросы в Excel 2010:
- Перейдите на вкладку “Разработчик”.
- В группе инструментов “Код” нажмите по кнопочке “Безопасность макросов”, которая выполнена в виде восклицательного знака на желтоватом фоне.
- Появится новое окно под заглавием “Центр управления безопасностью”. Найдите в перечне раздел “Параметры макросов”.
- Для включения макросов для вас нужно установить переключатель в соответственное положение.
- Нажмите клавишу “ОК”.

Здесь стоит объяснить, что выбор данного пт в значимой мере понижает сохранность компа и увеличивает возможность занести в систему вирусы, потому будьте внимательны при выборе макросов и смотрите, чтоб в их не было зловредного кода. Для этого лучше всего воспользоваться антивирусом, каждый раз перед добавлением макроса в Excel сканируя его на наличие вредных программ.
Вот сейчас вы понимаете как включить макросы в Excel 2010, но это только 1-ый метод, есть еще один, который неким может показаться наиболее удобным.
Способ №2: Через характеристики программы
Итак, на данный момент будет поведано о втором методе включения макросов в табличном редакторе Excel, осуществляется он последующим образом:
- Запустите програмку и перейдите во вкладку “Файл”.
- В появившемся меню перейдите в категорию “Параметры”.
- Теперь необходимо в новеньком окне, которое раскрылось опосля нажатия, перейти в “Центр управления безопасностью”.
- Далее в правой области окна нажмите “Параметры центра управления безопасностью”.
- Как не трудно додуматься, опосля этого покажется одноименное окно, которое нам знакомо по предшествующей аннотации. В нем для вас необходимо перейти в раздел “Параметры макросов”.
- В одноименной области справа, установите галочку рядом с “Включить все макросы”, чтоб они заработали.

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

Сейчас будет поведано, как включить макросы в Excel 2013. На самом деле метод действий не сильно различается, можно даже огласить, что вообщем не различается. Разнится лишь интерфейс программ, а все пункты аннотации применимы в равной мере, потому у вас без труда получится включить макросы, используя вышеописанное руководство.
Если вы не понимаете, как включить макросы в Excel 2007, то на данный момент мы объясним. Дело в том, что интерфейс уже во многом различается от 2010-й версии. Так, заместо вкладки “Файл” в ней логотип MS Office. Но есть достаточно обычной метод включения макросов, вот он:
- В меню перейдите в раздел “Сервис”.
- Далее выберите строку “Макрос”.
- Далее нажмите на раздел “Безопасность”.
Появится окно, где нужно отметить галочкой пункт, который запустит включение макросов.
Заключение
Теперь вы понимаете все методы активации макросов в разных програмках Excel. Надеемся что аннотация, изложенная в данной для нас статье, посодействовала для вас решить проблему.
