Автоматизация задач с помощью средства записи макросов — Excel
Для автоматизации повторяющихся задач в Microsoft Excel можно быстро записать макрос. Предположим, у вас есть даты в различном формате и вы хотите применить ко всем из них один формат. Это можно сделать с помощью макроса. Вы можете записать макрос, который применяет нужный формат, а затем запускать его при необходимости.
При записи макроса все действия в записи макроса записываются Visual Basic для приложений (VBA) коде. Эти действия могут включать ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование ячеек, строк или столбцов или даже импорт данных из внешнего источника, скажем, Microsoft Access. Visual Basic Приложение (VBA) — это подмножество мощного Visual Basic программирования, которое входит в большинство Office приложений. Хотя VBA позволяет автоматизировать процессы как в приложениях, так и между Office, необязательно знать код VBA или программирование на компьютере, если оно делает то, что вам нужно.
Важно знать, что при записи макроса регистрируются почти все ваши действия. Поэтому если вы допустите ошибку, например нажмете не ту кнопку, средство записи макросов зарегистрирует это действие. В таком случае можно снова записать всю последовательность или изменить код VBA. Поэтому перед записью процесса следует хорошо проработать его. Чем точнее вы запишете последовательность, тем более эффективно будет работать макрос.
Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».

Запись макроса
Перед записью макросов полезно знать следующее:
- Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.
- Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.
- В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.
Чтобы записать макрос, следуйте инструкциям ниже.

-
На вкладке Разработчик в группе Код нажмите кнопку Запись макроса. -ИЛИ- Нажмите ALT+T+M+R.
Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..
Работа с макросами, записанными в Excel
На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.

Внимание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.
Ниже приведены дополнительные сведения о работе с макросами в Excel.
Сведения о параметрах безопасности макросов и их значении.
Макросы можно запускать различными способами, например с помощью сочетания клавиш, графического объекта, панели быстрого доступа, кнопки или даже при открытии книги.
С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге.
Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.
Назначение макроса объекту, фигуре или графическому элементу
- Щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, и выберите пункт Назначить макрос.
- В поле Назначить макроса выберите макрос, который вы хотите назначить.
Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.
Вы можете назначать макросы формам и элементам ActiveX на листе.
Узнайте, как включать и отключать макросы в файлах Office.
Открытие редактора Visual Basic
Нажмите клавиши ALT+F11.
Узнайте, как найти справку по элементам Visual Basic.
Работа с записанным кодом в редакторе Visual Basic (VBE)
С помощью редактора Visual Basic (VBE) вы можете добавлять в записанный код собственные переменные, управляющие структуры и другие элементы, которые не поддерживает средство записи макросов. Так как средство записи макросов фиксирует почти каждый шаг, выполняемый во время записи, может также потребоваться удалить ненужный код. Просмотр записанного кода — отличный способ научиться программировать на VBA или отточить свои навыки.
Пример изменения записанного кода можно найти в статье Начало работы с VBA в Excel.
Запись макроса
Перед записью макросов полезно знать следующее:
- Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.
- Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.
- В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.
Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее.
- Перейдите в Excel >параметры. >ленты & панель инструментов.
- В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.
Чтобы записать макрос, следуйте инструкциям ниже.
- На вкладке Разработчик нажмите кнопку Запись макроса.
- В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.
Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..
Работа с макросами, записанными в Excel
На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. При этом откроется диалоговое окно Макрос.
Примечание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.
Ниже приведены дополнительные сведения о работе с макросами в Excel.
Узнайте, как включать и отключать макросы в Excel для Mac.
Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.
Назначение макроса объекту, фигуре или графическому элементу
- Щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, и выберите пункт Назначить макрос.
- В поле Назначить макроса выберите макрос, который вы хотите назначить.
Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.
Вы можете назначать макросы формам и элементам ActiveX на листе.
Открытие редактора Visual Basic
На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic.
Узнайте, как найти справку по элементам Visual Basic.
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.
Назначение макроса кнопке
С помощью кнопки (управления формы) можно запускать макрос, который выполняет действие при ее нажатии пользователем. Например, таким образом можно автоматизировать печать листа, фильтрацию данных либо расчеты.
После создания макросаего можно назначить кнопке, нажатой для запуска макроса. Макрос можно назначить кнопке на панели быстрого доступа или кнопке в личной группе на ленте.
Если вы хотите, чтобы кнопка макроса была доступна в других книгах, назначьте ее макросам, созданным в личной книге.
Добавление кнопки макроса на панель быстрого доступа

- Откройте вкладку Файл и выберите пункт Параметры, а затем — категорию Панель быстрого доступа.
- В списке Выбрать команды из выберите пункт Макрос.

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

- Щелкните Файл >Параметры >Настроить ленту.
- В списке Основные вкладки в списке Настроить ленту, если он еще не был проверен,в поле Разработчик.
Новая группа появится на вкладке, на которой можно нажать кнопку для запуска макроса.
Совет: После сохранения книгикнопки, которые вы назначаете макросам в личной книге, будут доступны во всех открытых книгах.
Более новые версии
- На вкладке Разработчик в группе Элементы управления щелкните Кнопка. Если вкладка «Разработчик» недоступна:
- Перейдите в Excel >параметры. >ленты & панели инструментов.
- В разделе Настройка ленты в разделе Основныевкладки, в разделе Разработчики нажмите кнопку ОК.
Excel 2011 для Mac
- На вкладке Разработчик в группе Элементы управления формы щелкните Кнопка. Если вкладка «Разработчик» недоступна:
- В правой части ленты нажмите кнопку
Создание макроса пользовательского интерфейса
В Microsoft Access макросы, присоединенные к объектам пользовательского интерфейса, таким как кнопки, текстовые поля, формы и отчеты, называются макросами пользовательского интерфейса. Это позволяет отличить их от макросов данных, которые присоединяются к таблицам. С помощью макросов пользовательского интерфейса можно автоматизировать ряд действий, таких как открытие другого объекта, применение фильтра, запуск операции экспорта и многие другие задачи. В этой статье представлен новый конструктор макросов, а также описаны основные задачи, связанные с созданием макроса пользовательского интерфейса.
Примечание: Эта статья не относится к веб-приложениям Access.
В этой статье
- Обзор
- Построитель макросов
- Создание автономного макроса
- Создание внедренного макроса
- Добавление макрокоманд в макрос
- Управление выполнением программы с помощью операторов «Если», «Иначе если» и «Иначе»
- Создание вложенных макросов
- Группировка связанных действий
- Развертывание и свертывание макрокоманд и блоков
- Копирование и вставка макрокоманд
- Предоставление общего доступа к макросу
- Запуск макроса
- Отладка макроса
- Преобразование макроса в код VBA
Общие сведения
Макросы могут содержаться в объектах макросов (такие макросы иногда называют автономными) или же внедряться в свойства событий форм, отчетов и элементов управления. Внедренные макросы становятся частью объекта или элемента управления. Объекты макроса отображаются в области навигации в группе Макросы; внедренные макросы в ней не указываются.
Каждый макрос состоит из одной или нескольких макрокоманд. В зависимости от контекста, в котором вы работаете, некоторые макрокоманды могут быть недоступны.
Построитель макросов
Вот некоторые основные возможности конструктора макроса.
- Каталог действий Макро макрос у систематизованы по типу и с помощью поиска.
- IntelliSense. При вводе выражений IntelliSense предлагает возможные значения и позволяет выбрать правильное значение.
- Сочетания клавиш Используйте сочетания клавиш, чтобы ускорить и упростить написание макроса.
- Поток программы Создавайте более понятные макросы с строками прикомментов и группами действий.
- Условные выписки Разрешить более сложное выполнение логики с поддержкой вложенных если/Иначе если.
- Повторное использование макроса В каталоге макроса отображаются другие макросы, которые вы создали, и вы можете скопировать их в тот, над чем вы работаете.
- Простое совместное использование Скопируйте макрос, а затем вкопируйте его как XML-код в сообщение электронной почты, запись группы новостей, блог или образец кода.
Вот видеоролик, в котором вы сможете иным образом о том, как основные области конструктора макроса.

Создание автономного макроса
Данная процедура позволяет создать объект автономного макроса, который будет выводиться в списке Макросы в области навигации. Макрос полезно сделать автономным, если вы хотите повторно использовать его во многих частях приложения. Вызывая макрос из других макросов, можно избежать дублирования кода в нескольких местах.
-
На вкладке Создание в группе Макросы и код нажмите кнопку Макрос.
Создание внедренного макроса
Данная процедура позволяет создать макрос, внедренный в свойство события объекта. Такие макросы не отображаются в области навигации, но их можно вызывать их событий, например Загрузка или Нажатие кнопки.
Так как макрос становится частью объекта формы или отчета, внедренные макросы рекомендуется использовать для автоматизации задач, которые относятся к конкретной форме или отчету.
- В области навигации щелкните правой кнопкой мыши форму или отчет, в которые нужно добавить макрос, и выберите команду Режим макета.
- Если окно свойств не отображается, нажмите клавишу F4.
- Щелкните элемент управления или раздел, содержащий свойство события, в которое вы хотите внедрить макрос. Вы также можете выбрать элемент управления или раздел (либо форму или отчет целиком) с помощью раскрывающегося списка Возможен выбор в верхней части страницы свойств.
- В области задач «Страница свойств» откройте вкладку Событие.
- Щелкните поле свойства для события, которое должно активировать макрос. Например, если вы хотите, чтобы макрос выполнялся при нажатии кнопки, щелкните поле свойства Нажатие для кнопки.
Добавление макрокоманд в макрос
Макрокомандами называются отдельные команды, которые образуют макрос. Имя макрокоманды отражает ее назначение, например НайтиЗапись или ЗакрытьБазуДанных.
Шаг 1. Просмотр или поиск макрокоманд
Чтобы добавить макрокоманду, прежде всего нужно найти ее в раскрывающемся списке Добавить новую макрокоманду или в каталоге макрокоманд.
- По умолчанию в раскрывающемся списке Добавить новую макрокоманду и в каталоге макрокоманд выводятся только макрокоманды, которые выполняются в ненадежных базах данных. Чтобы просмотреть все макрокоманды:
- На вкладке Конструктор в группе Показать или скрыть выберите пункт Показать все действия.
Найти макрокоманду можно одним из следующих способов:
- Щелкните стрелку раскрывающегося списка Добавить новую макрокоманду и прокрутите список вниз, чтобы найти макрокоманду. Сначала выводятся элементы управления выполнением программы, а затем — макрокоманды в алфавитном порядке.
- Найдите макрокоманду в области «Каталог макрокоманд». Макрокоманды сгруппированы по категориям. Разверните категории для просмотра макрокоманд. При выборе макрокоманды в нижней части каталога выводится ее краткое описание.
- Выполните поиск макрокоманды, введя текст в поле «Поиск» в верхней части области «Каталог макрокоманд». По мере ввода список макрокоманд фильтруется и в нем выводятся все макросы, которые содержат текст. Access ищет введенный текст в именах макросов и их описаниях.
Шаг 2. Добавление макрокоманды в макрос
После того как вы нашли нужную макрокоманду, добавьте ее в макрос с помощью одного из следующих способов:
- Выберите макрокоманду в списке Добавить новую макрокоманду или просто начните вводить имя макрокоманды в поле. Access добавит макрокоманду туда, где отображался список Добавить новую макрокоманду.
- Перетащите макрокоманду из каталога макрокоманд в область макроса. Появится полоса вставки, показывающая, куда будет вставлена макрокоманда, когда вы отпустите кнопку мыши.
- Дважды щелкните макрокоманду в каталоге макрокоманд.
- Если в области макроса выбрана макрокоманда, Access добавит новую макрокоманду под выбранной.
- Если в области макроса выделен блок Группа, Если, Иначе если, Иначе или Вложенный макрос, Access добавит новую макрокоманду в него.
- Если в области макроса не выбраны макрокоманды и блоки, Access добавит новую макрокоманду в конец макроса.
- Если вы уже создали один или несколько макросов, они указаны в узле В этой базе данных каталога макрокоманд.
- При перетаскивании автономного макроса (который указан в разделе Макросы) в область макроса создается макрокоманда ЗапускМакроса, которая выполняет перетащенный макрос. Затем вы можете с помощью раскрывающегося списка вызвать вложенные макросы, если они имеются.
- Если вы хотите просто скопировать макрокоманды из автономного макроса в текущий (вместо того чтобы создавать макрокоманду ЗапускМакроса), щелкните его правой кнопкой мыши в каталоге макрокоманд и выберите команду Добавить копию макроса.
- При перетаскивании внедренного макроса (указанного в объекте формы или отчета) в область макроса макрокоманды из него копируются в текущий макрос.
Шаг 3. Ввод аргументов
Для большинства макрокоманд требуется по крайней мере один аргумент. Чтобы просмотреть описание любого из аргументов, выделите макрокоманду, а затем наведите указатель на аргумент. Для многих аргументов вы можете выбрать значение из раскрывающегося списка. Если для аргумента требуется ввести выражения, IntelliSense помогает сделать это, предлагая возможные значения по мере ввода, как показано на рисунке ниже:

Когда появится значение, которое вы хотите использовать, добавьте его в выражение, дважды щелкнув его или выделив его с помощью клавиш со стрелками, а затем нажав клавишу TAB или ВВОД.
Дополнительные сведения о создании выражений см. в статье Введение в использование выражений.
Сведения об использовании IntelliSense со свойствами веб-базы данных
При создании макроса пользовательского интерфейса, внедренного в веб-совместимую форму, IntelliSense позволяет добавлять любые свойства формы в выражение. Однако в веб-базе данных с помощью макросов пользовательского интерфейса можно получать доступ только к некоторым свойствам формы. Например, если в форме «Форма1» есть элемент управления «Элемент1», IntelliSense позволит добавить [Формы]![Форма1]![Элемент1].[ControlSource] в выражение в макросе пользовательского интерфейса. Но если опубликовать базу данных в службах Access, макрос, содержащий выражение, будет вызывать ошибку при запуске на сервере.
В таблице ниже перечислены свойства, которые вы можете использовать в макросах пользовательского интерфейса в веб-базах данных:
Объект или элемент управления
Caption, Dirty, AllowAdditions, AllowDeletions, AllowEdits
Как добавить макрос на панель быстрого доступа excel
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ruИспользование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071