Запись макроса excel: Запись макроса в Excel — Microsoft Excel для начинающих
Как в Excel записать макрос — Трюки и приемы в Microsoft Excel
Самый простой способ начать изучение макросов Excel состоит в их использовании для записи последовательности действий. Затем вы можете воспроизводить эту последовательность, то есть выполнять макрос.
Следующий пример даст новичкам возможность почувствовать, как работают макросы. В нем показано, как записать простой макрос, который вставляет ваше имя в активную ячейку.
Создание макроса
Чтобы создать макрос, выполните следующие действия.
- Активизируйте пустую ячейку.
- Нажмите кнопку Запись макроса в левой части строки состояния. Появится окно Запись макроса.
- Введите новое имя для макроса, состоящее из одного слова, чтобы заменить имя по умолчанию Макрос1. Укажем МоеИмя.
- Назначьте макросу сочетание клавиш Ctrl+Shift+N, введя букву N в верхнем регистре в поле для редактирования, помеченное как Сочетание клавиш.
- Нажмите ОК, чтобы закрыть диалоговое окно Запись макроса и начать запись ваших действий.
- Введите свое имя в выбранную ячейку и нажмите клавишу Enter.
- Макрос завершен, поэтому нажмите кнопку Остановить запись в строке состояния.
Этот макрос очень простой. В большинстве случаев вы будете записывать больше действий, чем указано в этом примере.
Просмотр кода макроса
Макрос был записан в новый модуль VBA под названием Module1. Если вам интересно, можете посмотреть на инструкции, которые были записаны. Для просмотра кода этого модуля вы должны открыть Visual Basic Editor (VBE). Нажмите Alt+F11 для переключения между окнами VBE и Excel.
В VBE окно Project отображает список всех открытых книг и надстройки. Этот список показан в виде древовидной диаграммы, которую можно сворачивать и разворачивать. Код, который вы записали ранее, хранится в Module1 текущей книги. Если вы дважды щелкнете на Modulel, то код модуля появится в окне Code (рис. 204.1).
Рис. 204.1. Макрос МоеИмя был сгенерирован посредством записи макросов в Excel
Обратите внимание, что Excel вставил комментарии в верхней части процедуры. Это некоторая информация, которая появилась в окне Запись макроса. Строки с комментариями (которые начинаются с апострофа) необязательны, а их удаление не влияет на работу макроса.
Тестирование макроса
Перед тем как записать этот макрос, вы назначили ему сочетание клавиш Ctrl+Shift+N. Чтобы протестировать макрос, вернитесь в Excel, нажав Alt+F11. Когда Excel активен, активизируйте лист (он может быть в книге, содержащей модуль VBA, или в любой другой книге). Выберите ячейку или диапазон ячеек и нажмите Ctrl+Shift+N. Макрос немедленно введет ваше имя в ячейку.
В этом примере обратите внимание на то, что вы выбрали ячейку до начала записи макроса. Это важно. Если выбрать ячейку в то время, как идет запись макроса, та ячейка, которую вы выберете, запишется в макрос. В таком случае он всегда будет вводить ваше имя именно в эту ячейку и не станет макросом «общего назначения».
Как создать макрос в Excel
Макросы в Microsoft Excel позволяют значительно ускорить работу с документами в этом табличном редакторе. Эта возможность достигается путем автоматизации повторяющихся действий, записанных в специальный код. Давайте разберем, как создать макросы в программе и как их можно отредактировать.
Способы записи макросов в Excel
Макрос записывается двумя способами: автоматически и вручную. Воспользовавшись первым вариантом, вы просто записываете определенные действия в Microsoft Excel, которые выполняете в данный момент времени. Потом можно будет воспроизвести эту запись. Такой метод очень легкий и не требует знания кода, но применение его на практике довольно ограничено. Ручная запись, наоборот, требует знаний программирования, так как код набирается вручную с клавиатуры. Однако грамотно написанный таким образом код может значительно ускорить выполнение процессов.
Вариант 1: Автоматическая запись макросов
Прежде чем начать автоматическую запись макросов, нужно включить их в программе Microsoft Excel. Для этого воспользуйтесь нашим отдельным материалом.
Подробнее: Включение и отключение макросов в Microsoft Excel
Когда все готово, приступаем к записи.
- Перейдите на вкладку «Разработчик». Кликните по кнопке «Запись макроса», которая расположена на ленте в блоке инструментов «Код».
- Открывается окно настройки записи макроса. Тут можно указать любое имя для него, если установленное по умолчанию вас не устраивает. Главное, чтобы имя это начиналось с буквы, а не с цифры, а также в названии не должно быть пробелов. Мы оставили название по умолчанию – «Макрос1».
- Тут же при желании можно установить сочетание клавиш, при нажатии на которые макрос будет запускаться. Первой клавишей обязательно должна быть Ctrl, а вторую пользователь устанавливает самостоятельно. Мы в качестве примера установили клавишу М.
- Далее следует определить, где будет храниться макрос. По умолчанию он расположен в этой же книге (файле), но при желании можно установить хранение в новой книге или в отдельной книге макросов. Мы оставим значение по умолчанию.
- В самом нижнем поле можно оставить любое подходящее по контексту описание макроса, но это делать не обязательно. Когда все настройки выполнены, жмем на кнопку «OK».
- После этого все ваши действия в данной книге (файле) Excel будут записываться в макрос до тех пор, пока вы сами не остановите запись.
- Для примера запишем простейшее арифметическое действие: сложение содержимого трех ячеек (=C4+C5+C6).
- Когда алгоритм был выполнен, щелкаем на кнопку «Остановить запись». Эта кнопка преобразовалась из кнопки «Запись макроса» после включения записи.
Запуск макроса
Для проверки того, как работает записанный макрос, выполним несколько простых действий.
- Кликаем в том же блоке инструментов «Код» по кнопке «Макросы» или жмем сочетание клавиш Alt + F8.
- После этого открывается окно со списком записанных макросов. Ищем макрос, который мы записали, выделяем его и кликаем на кнопку «Выполнить».
- Можно поступить еще проще и не вызывать даже окно выбора макросов, так как на первом этапе мы задали сочетание клавиш для быстрого вызова макроса. В нашем случае это Ctrl + М. Жмем данную комбинацию на клавиатуре, после чего он запускается.
- Как видим, он выполнил в точности все те действия, которые были записаны ранее.
Редактирование макроса
Естественно, при желании вы можете корректировать созданный макрос, чтобы всегда поддерживать его в актуальном состоянии и исправлять некоторые неточности, допущенные во время процесса записи.
- Снова щелкаем на кнопку «Макросы». В открывшемся окне выбираем нужный и кликаем по кнопке «Изменить».
- Открывается «Microsoft Visual Basic» (VBE) – среда, где происходит их редактирование.
- Запись каждого макроса начинается с команды
Sub
, а заканчивается командойEnd Sub
. Сразу же послеSub
указывается имя макроса. ОператорRange("…").Select
указывает выбор ячейки. Например, при команде «Range(«C4»).Select» выбирается ячейка «C4». ОператорActiveCell.FormulaR1C1
используется для записи действий в формулах и других расчетов. - Попытаемся немного изменить макрос, дописав выражение:
Range("C3").Select
ActiveCell.FormulaR1C1 = "11" - Выражение
ActiveCell.FormulaR1C1 = "=R[-3]C+R[-2]C+R[-1]C"
заменим наActiveCell.FormulaR1C1 = "= R[-4]C+R[-3]C+R[-2]C+R[-1]C"
. - Закрываем редактор и запускаем макрос. Как видим, вследствие введенных нами изменений была добавлена дополнительная ячейка с данными. Она также была включена в расчет общей суммы.
- В случае если макрос слишком большой, его выполнение может занять значительное время, но внесением ручного изменения в код мы можем ускорить процесс. Добавляем команду
Application.ScreenUpdating = False
. Она позволит сохранить вычислительные мощности, а значит, ускорить работу. Это достигается путем отказа от обновления экрана во время выполнения вычислительных действий. Чтобы возобновить обновление после выполнения макроса, в его конце пишем командуApplication.ScreenUpdating = True
. - Добавим также команду
Application.Calculation = xlCalculationManual
в начало кода, а в его конец дописываемApplication.Calculation = xlCalculationAutomatic
. Этим мы сначала отключаем автоматический пересчет результата после каждого изменения ячеек, а в конце макроса – включаем. Таким образом, Excel подсчитает результат только один раз, а не будет его постоянно пересчитывать, чем сэкономит время. - Чтобы приступить к этому, нужно нажать на кнопку «Visual Basic», которая расположена в самом начале ленты разработчика.
- Откроется окно редактора VBE, которое уже быдло продемонстрировано в предыдущем варианте.
- Программист пишет там код макроса вручную.
Вариант 2: Написание кода макроса с нуля
Продвинутые пользователи могут выполнять не только редактирование и оптимизацию записанных макросов, но и записывать их код с нуля.
Как видим, макросы в Microsoft Excel могут значительно упростить выполнение рутинных и однообразных процессов. Тем не менее в большинстве случаев для этого больше подходят макросы, код которых написан вручную, а не автоматически записанные действия. Кроме того, его код можно оптимизировать через редактор VBE для ускорения процесса выполнения задачи.
Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось.
Наши специалисты постараются ответить максимально быстро.
Помогла ли вам эта статья?
ДА НЕТ
Добавление и изменение макроса для элемента управления на листе
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Для автоматизации элемента управления формы или элемента ActiveX выполните указанные ниже действия.
-
Выполнение действия или операции, когда пользователь щелкает элемент управления формы, присваивая ему макрос.
-
Выполняйте программы Microsoft Visual Basic для приложений (VBA) для обработки событий, происходящих при взаимодействии пользователя с элементом управления ActiveX.
Дополнительные сведения о создании макросов можно найти в разделе Создание и удаление макросов.
Добавление и изменение макроса для элемента управления формы
-
Щелкните элемент управления правой кнопкой мыши и выберите команду назначить макрос.
Откроется диалоговое окно назначение макросов .
-
Чтобы указать расположение существующего макроса, выберите его в поле макросы, выполнив одно из указанных ниже действий.
-
Чтобы найти макрос во всех открытых книгах, выберите все открытые книги.
Примечание: Если макрос, который вы хотите назначить элементу управления, находится в отдельной книге, сначала откройте книгу, чтобы она стала доступна в списке макросы в поле список. -
Чтобы ограничить поиск макроса книги, содержащей текущий лист, выберите Эта книга.
-
Чтобы ограничить поиск макроса конкретной книгой, выберите ее в списке доступных имен открытых книг.
-
-
Выполните одно из следующих действий.
Назначение макроса Выполните одно из следующих действий.-
Запись нового макроса Нажмите кнопку записьи, когда закончите запись макроса, на вкладке разработчик в группе код нажмите кнопку остановить запись
. -
Назначение существующего макроса Дважды щелкните макрос в списке или введите его имя в поле имя макроса . -
Создание нового макроса Нажмите кнопку создать , а затем в редакторе Visual Basic напишите новый макрос.Дополнительные сведения о создании макросов можно найти в справке по Visual Basic.
Изменение назначенного макроса Выполните одно из следующих действий. -
Изменение назначенного макроса Щелкните имя макроса в поле имя макроса , а затем нажмите кнопку изменить. -
Назначение другого существующего макроса Дважды щелкните макрос в списке или введите его имя в поле имя макроса .
-
Добавление и изменение макроса для элемента ActiveX
-
Если вкладка Разработчик недоступна, отобразите ее.
В Excel 2016, 2013, 2010:
-
Щелкните Файл > Параметры > Настроить ленту.
-
В разделе Настройка лентыустановите флажок разработчик , а затем нажмите кнопку ОК.
В Excel 2007
-
Нажмите кнопку Microsoft Office
, а затем — кнопку Параметры Excel. -
В категории популярные в разделе Основные параметры работы с Excelустановите флажок Показывать вкладку «Разработчик» на ленте и нажмите кнопку ОК.
-
-
Чтобы изменить элемент ActiveX, убедитесь, что выбран режим конструктора. На вкладке Разработчик в группе Элементы управления нажмите кнопку Режим конструктора
. -
Выберите элемент управления.
Дополнительные сведения можно найти в разделе выделение и снимите флажки для элементов управления на листе.
-
на вкладке разработчик в группе элементы управления нажмите кнопку Просмотреть код
.
Примечание: Вы также можете изменить существующий макрос, щелкнув элемент управления правой кнопкой мыши и выбрав команду Просмотреть код. -
В редакторе Visual Basic напишите новый макрос или измените существующий макрос.
Дополнительные сведения о создании макросов можно найти в справке по Visual Basic.
-
Завершив Написание макроса, нажмите кнопку Закрыть и вернитесь в Microsoft Excel из меню файл в редакторе Visual Basic.
-
После того как вы завершите разработку элемента управления, на вкладке разработчик в группе элементы управления отключите режим конструктора
.
Как запустить макрорекордер в Excel? Как записать, выполнить и просмотреть макрос?
Если Вы задались вопросом «Как запустить макрорекордер и записать макрос в Excel?» то эта статья для Вас. Рассмотрим процесс запуска макрорекордера и записи макроса в разных версиях Excel. Для большей определенности запишем макрос, выделяющий столбец «А» электронной таблицы.
Microsoft Excel 2003
Запускаем приложение, заходим в главное меню Сервис/Макрос и выбираем пункт «Начать запись…»
После выбора пункта меню «Начать запись» появляется окно, в котором присваиваем нашему макросу имя «Макрос1», сочетание горячих клавиш присваивать не будем, для сохранения выберем личную книгу макросов, описание оставим то, которое есть по умолчанию. Жмем ОК.
С этого момента все наши действия записываются макрорекордером, автоматически переводятся на язык программирования Visual Basic for Application и записываются в модуль личной книги макросов.
В самом начале статьи мы условились, что нашим действием будет выделение столбца «А», поэтому выделяем столбец и останавливаем запись выбором меню «Остановить запись», которая находится также в меню Сервис/Макрос.
Вот собственно и все, макрос записан.
Посмотрим теперь, как работает записанный нами макрос. Для этого снимем выделение со столбца, зайдем в меню Сервис/Макрос/Макросы либо нажмем сочетание клавиш Alt+F8, выберем из списка макрос с нашим названием «Макрос1» и нажмем кнопку «Выполнить». Обратите внимание, что с помощью этого окна можно не только запустить макрос, можно также внести изменения в его программный код, а также удалить макрос.
Результатом выполнения макроса станет выделенный столбец «А», строго в соответствии с тем действием, которое мы записали. Если записанный Вами макрос не запустился, то Вам следует изменить параметры системы безопасности.
Для просмотра программного кода записанного макроса, запускаем редактор Visual Basic через меню Сервис/Макрос/Редактор Visual Basic, либо нажатием сочетания клавиш Alt+F11. В открывшемся окне редактора видим новый модуль Module1 в проекте VBAProject(PERSONAL.XLS), в котором сохранен программный код записанного нами макроса.
Microsoft Excel 2007
Запускаем приложение. Кнопка «Начать запись…» в Excel 2007 расположена сразу в нескольких местах, самое доступное из которых в левом нижнем углу окна приложения, в строке состояния.
Еще одно расположение откуда доступен запуск макрорекордера на вкладке «Вид», в группе «Макросы». Прежде чем продолжить, остановимся на том, что такое лента и что такое вкладка на этой ленте. Лента — это широкая полоса в верхней части окна программы, на которой размещены тематические наборы команд, собранные во вкладках и в группах. Вкладка в свою очередь, представляет собой часть ленты с командами, сгруппированными по задачам, которые обычно выполняются совместно. Группа — это еще более локализованный набор команд, сформированный по принципу наибольшей близости по типу выполняемой задачи. Непосредственно в группах уже находятся кнопки для выполнения команд.
И еще одно место где можно включить запись макроса макрорекордером — это вкладка «Разработчик», в том случае, если она предварительно была отображена на ленте. По умолчанию эта вкладка в Excel 2007 не отображается.
На вкладке «Разработчик» расположены все доступные инструменты для работы с макросами. О том как ее отобразить описано в статье «Работа с макросами VBA. Инструменты для работы с макросами.«
После нажатия, кнопка «Запись макроса» меняет свое название на «Остановить запись». Выполнение и просмотр кода макроса осуществляется точно также, как в Excel 2003.
Microsoft Excel 2010
В Excel 2010 расположение кнопок записи и остановки записи макроса абсолютно аналогичное версии Excel 2007. Это левый нижний угол окна приложения в строке состояния, вкладка «Вид» и вкладка «Разработчик». В этой версии Excel, редактор Visual Basic устанавливается как отдельный компонент пакета с наименованием «Общие средства Office» и называется «Visual Basic для приложений», поэтому если у Вас возникли проблемы с доступностью макрорекрордера или редактора Visual Basic, то Вам необходимо вернуться на этап установки пакета Microsoft Office и доустановить недостающий компонент. Кроме того, может возникнуть проблема при запуске самого макроса, связанная с настройками системы безопасности.
Другие материалы по теме:
Создание и удаление макросов в Excel для Mac с помощью вкладки «Разработчик»
Чтобы автоматизировать повторяющиеся задачи, чтобы можно было повторно выполнить задачу одним нажатием кнопки, можно использовать вкладку Разработчик в Excel для Mac, чтобы записывать и запускать макросы. Кроме того, можно создать макрос с помощью редактор Visual Basic в Microsoft Visual Basic для приложений (VBA), написав собственный программный код. Макрос, который вы больше не используете, можно удалить.
Запись макроса
При записи макроса все необходимые действия записываются средством записи макроса. Такими действиями может быть ввод текста или чисел, выбор ячеек или команд на ленте или в меню, форматирование, выделение ячеек, строк или столбцов, а также выделение ячеек путем перетаскивания указателя мыши. Команды для записи, создания и удаления макросов доступны на вкладке ленты Разработчик.
-
Если вкладка Разработчик недоступна, выполните перечисленные ниже действия, чтобы открыть ее.
-
Выберите > ПараметрыExcel > & панель инструментов ленты.
-
В разделе Настройка лентывыберите Основные вкладки , а затем — разработчик.
-
Нажмите кнопку сохранить , а затем закройте настройки Excel.
-
-
На вкладке Разработчик нажмите кнопку Запись макроса.
Примечание: Чтобы создать макрос из VBE, щелкните Visual Basic. В окне кода модуля введите код макроса. -
В поле Имя макроса введите имя макроса.
Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..
-
В списке Сохранить в выберите вариант эта книга.
-
В поле Сочетание клавиш введите прописную или строчную букву, которую хотите использовать.
Примечание: Выбранное сочетание клавиш заменяет все совпадающие стандартные сочетания клавиш Excel на то время, пока открыта книга, содержащая соответствующий макрос. -
Введите описание макроса в поле Описание и нажмите кнопку ОК.
-
Завершите запись макроса.
-
На вкладке Разработчик щелкните Остановить запись.
К началу страницы
Удаление макроса
-
На вкладке Разработчик нажмите кнопку Макросы.
-
Выберите в списке макрос, который требуется удалить, и нажмите кнопку «Удалить».
К началу страницы
Что такое макрос и где его искать?
Хитрости »
1 Май 2011 Дмитрий 414361 просмотров
Скачать файл, используемый в видеоуроке:
Tips_Macro_Basic_Video.xls (63,5 KiB, 3 392 скачиваний)
Наверное, многие слышали это слово «макрос«, но не все имеют точное представление что это, если заглянули на эту страничку.
Макрос — это макрокоманда(так звучит в правильном переводе с англ.языка), содержащая последовательность действий, записанных пользователем. Запись производится с помощью встроенного в пакет Microsoft Office языка программирования — Visual Basic for Application(VBA).
Зачем же нужны макросы? А нужны они для того, чтобы избавить Вас от рутинного выполнения одних и тех же действий. Например, Вам каждый день приходиться удалять из ежедневных отчетов по несколько столбцов и добавлять новые строки для шапки и т.п. Скучно и утомительно. Вы просто можете записать один раз все эти действия макрорекордером, а в дальнейшем только вызывать записанный макрос и он все сделает за Вас. Что немаловажно, для использования макрорекордера и записи макроса не надо обладать никакими навыками программирования.
В этой статье:
ПОДГОТОВКА К ЗАПИСИ МАКРОСА
Прежде чем начать работать с макросами необходимо разрешить их выполнение, т.к. по умолчанию они отключены. Для этого необходимо сделать следующее:
- Excel 2003:
Сервис-Безопасность-Уровень макросов «Низкий» - Excel 2007:
Кнопка Офис—Параметры Excel (Excel Options)—Центр управления безопасностью (Trust Centr)—Параметры центра управления безопасностью (Trust Centr Settings)—Параметры макросов (Macro Settings)—Разрешить все макросы (Enable All Macros) - Excel 2010:
Файл (File)—Параметры (Options)—Центр управления безопасностью (Trust Centr)—Параметры центра управления безопасностью (Trust Centr Settings)—Параметры макросов (Macro Settings)—Разрешить все макросы (Enable All Macros)
После изменения параметров безопасности макросов необходимо перезапустить приложение Excel: закрыть его полностью и открыть заново. Только после этого изменения вступят в силу.
Прежде чем начать записывать макрос необходимо помнить следующее:
- Макрорекордер записывает АБСОЛЮТНО ВСЕ ваши действия – ошибки, прокручивание экрана, переключение между листами, выделение ячеек и т.д. Поэтому перед записью своих действий необходимо сначала тщательно продумать все свои действия, чтобы в дальнейшем записать только то, что действительно необходимо записать и в дальнейшем воспроизвести. Это сократит как сам код, так и время его выполнения
- Макрорекордер записывает действия выполненные только в пределах Microsoft Excel. Если вы переключитесь в другое приложение – действия в этой программе записаны не будут. Если закроете Excel – запись прекратится
- Макрорекордер может записать только те действия, которые можно проделать вручную(те, которые доступны для выполнения из меню и с панелей)
- Если во время кода вы совершили ошибочное действие и нажали кнопку отмены(Ctrl+Z) – отмененное действие не будет записано в макрос, как будто вы его просто не делали
ЗАПИСЬ МАКРОСА
Для пользователей Excel 2003 запись макроса возможна через меню:
Сервис —Макрос —Начать Запись
Для пользователей Excel 2007-2010 и старше:
ПАРАМЕТРЫ ЗАПИСИ МАКРОСА
Перед записью можно задать имя записываемому макросу и назначить сочетание клавиш, при нажатии которых этот макрос будет запускаться. После нажатия кнопки для начала записи макроса появится окно:
Имя макроса – не должно содержать пробелов, запятых, двоеточий и т.п. Допустимы символы кириллицы, латиницы, цифры и нижнее подчеркивание (я рекомендую давать макросам имена, содержащие только буквы латиницы). Имя макроса всегда должно начинаться с буквы и не должно совпадать со встроенным именем Excel или именем другого объекта в книге (например, не должно носить имя Workbook, Cells или ЭтаКнига). Лучше давать макросу сразу понятное имя, отражающее примерную суть того, что он делает.
Сочетание клавиш – можно назначить вызов макроса сочетанием клавиш. Доступно назначение любой цифры или буквы в сочетании с Ctrl.
Сохранить в – выбираете место хранения записываемого макроса. Доступны варианты:
- Эта книга (This Workbook) – макрос будет записан в той же книге, из которой была запущена запись. Записанный макрос будет доступен из приложения только если книга открыта
- Новая книга (New Workbook) – будет создана новая книга, в которой записан макроса. Записанный макрос будет доступен из приложения только если книга открыта
- Личная книга макросов (Personal Macro Workbook) – самый интересный вариант. Если его выбрать, то макрос будет сохранен в отдельной книге PERSONAL.XLS (для Excel 2007 и выше — PERSONAL.XLSB). Макросы, записанные в эту книгу доступны из всех открытых книг Excel и эта книга подключается автоматически при запуске самого Excel. Т.е. однажды записав где-то макрос в эту книгу – он теперь будет доступен из любой книги независимо от того, открыта ли книга, из которой был записан макрос или нет. Изначально эта книга отсутствует и создается в момент первого обращения к ней (т.е. как только вы первый раз выбрали Сохранить в личную книгу макросов)
ВОСПРОИЗВЕДЕНИЕ МАКРОСА
После записи макроса запустить его можно разными способами:
- ПРИ ПОМОЩИ СОЧЕТАНИЯ КЛАВИШ: Alt+F8
Этот способ универсальный и его можно использовать из любой версии Excel. Достаточно нажать сочетание клавиш Alt+F8 и выбрать нужный макрос из списка: - ВЫЗОВ ИЗ МЕНЮ:
Excel 2007-2010 и старше: вкладка Разработчик (Developer)→ Макросы (Macros)
Excel 2003: Сервис→ Макрос→ Макросы - НАЖАТИЕМ СОБСТВЕННОЙ КНОПКИ НА ЛИСТЕ:
Можно разместить на листе собственную кнопку, по нажатии которой будет запускаться записанный макрос. Подробно этот процесс я описал в статье: Как создать кнопку для вызова макроса на листе - ПРИ ПОМОЩИ НАЗНАЧЕННЫХ МАКРОСУ ГОРЯЧИХ КЛАВИШ:
Если вы перед записью назначили макросу сочетание клавиш, то вы также можете вызвать этот макрос и нажатием данного сочетания. Горячие клавиши макросу можно назначить и после записи: Alt+F8→ Выделяем нужный макрос→ Параметры (Options). - ПРИ НАСТУПЛЕНИИ ОПРЕДЕЛЕННОГО СОБЫТИЯ В ЛИСТЕ ИЛИ КНИГЕ:
Прежде чем пробовать использовать этот метод рекомендуется изучить статью Что такое модуль? Какие бывают модули?Для этого сначала необходимо вставить код макроса в тело событийной процедуры (подробнее про событийные процедуры). Например, если выбрать процедуру листа Change, то в лист автоматически будет вставлена пустая процедура:
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
End SubЕсли ранее вами был записан код выделения и удаления двух столбцов – Макрос1:
Sub Макрос1() ' ' Макрос1 Макрос ' макрос удаляет столбцы C и D из активного листа ' ' Сочетание клавиш: Ctrl+Shift+Q ' Columns("C:D").Select Selection.Delete Shift:=xlToLeft End Sub
Sub Макрос1()
‘
‘ Макрос1 Макрос
‘ макрос удаляет столбцы C и D из активного листа
‘
‘ Сочетание клавиш: Ctrl+Shift+Q
‘
Columns(«C:D»).Select
Selection.Delete Shift:=xlToLeft
End SubТо для выполнения это кода при наступлении события изменения на листе можно вставить вызов этого макроса:
Private Sub Worksheet_Change(ByVal Target As Range) Call Макрос1 End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Call Макрос1
End Subили вставить сам код (без Sub и End Sub) внутрь процедуры Worksheet_Change:
Private Sub Worksheet_Change(ByVal Target As Range) Columns("C:D").Select Selection.Delete Shift:=xlToLeft End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Columns(«C:D»).Select
Selection.Delete Shift:=xlToLeft
End Sub
В каких файлах можно хранить макросы?
Как ни странно, но начиная с версии 2007 Excel не все файлы могут хранить макросы. Это значит, что если макрос был записан в файле и потом файл был сохранен в формате, который хранение макросов не поддерживает — макросы пропадут. Как правило Excel в таком случае выдаст предупреждение о том, что проект VBA в файле этого формата не может быть сохранен и будет удален, если нажать Да:
Чтобы сохранить файл с поддержкой макросов необходимо будет нажать Нет и из списка форматов выбрать тот, который поддерживает хранение макросов.
Ниже приведены форматы файлов, применяемые в Excel с описанием того, можно ли в них хранить макросы(VBA коды):
- *.xls – формат книги Excel 97–2003 (поддержка VBA, макросов)
- *.xla – надстройка Excel 97–2003 (поддержка VBA, макросов)
- *.xlsx – формат книги Excel 2007 по умолчанию без поддержки макросов
- *.xlsm – книга Excel 2007 с поддержкой макросов
- *.xlsb – двоичный формат для больших объемов данных (с поддержкой VBA, макросов)
- *.xltx – шаблон книги Excel 2007 без поддержки макросов
- *.xltm – шаблон книги Excel 2007 с поддержкой макросов
- *.xlam – надстройка Excel 2007
Для смены формата файла его необходимо сохранить в другом формате:
- Excel 2007: Кнопка Офис —Сохранить как(SaveAs) -Выбрать необходимый формат файла
- Excel 2010: Файл(File) —Сохранить как(SaveAs) -Выбрать необходимый формат файла
Теперь несложно понять, что хранить макросы в версиях Excel 2007 и выше можно в форматах: xls, xla, xlsm, xlsb, xltm, xlsm.
Также см.:
Почему не работает макрос?
Как создать кнопку для вызова макроса на листе?
Select и Activate — зачем нужны и нужны ли?
Как ускорить и оптимизировать код VBA
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Редактирование макроса — Excel
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Чтобы изменить макрос, прикрепленный к книге Microsoft Excel, используйте редактор Visual Basic.
Изменение параметров безопасности макросов
Для редактирования и запуска макросов необходимо установить для уровня безопасности параметр временное включение всех макросов.
-
На вкладке Разработчик в группе Код выберите элемент Безопасность макросов.
-
В группе Параметры макросов выберите переключатель Включить все макросы (не рекомендуется, возможен запуск опасной программы), а затем дважды нажмите кнопку ОК.
Предупреждение: Чтобы предотвратить запуск потенциально опасных программ, мы рекомендуем вернуться к любому из параметров, которые после завершения работы с макросами отключили все макросы.
Редактирование макроса
-
На вкладке Разработчик в группе Код нажмите кнопку Макросы.
-
В поле имя макроса выберите макрос, который нужно изменить.
-
и нажмите кнопку Изменить. Откроется редактор Visual Basic.
Совет: Чтобы получить справку при работе с редактором Visual Basic, в меню Справка выберите пункт Справка по Microsoft Visual Basicили нажмите клавишу F1.
Запишите макрос в Excel
На главную »Написание макросов Excel» Запись макроса
Если у вас есть простой набор действий, которые вам нужно повторить несколько раз, вы можете заставить Excel записывать эти действия и создавать макрос, содержащий код для их повторения.
После того, как вы записали макрос, вы можете повторять набор действий сколько угодно раз, просто запустив записанный макрос. Это намного эффективнее, чем каждый раз повторять один и тот же набор действий вручную.
Чтобы записать макрос, вам нужно сначала запустить процесс записи. Этот параметр находится в меню Macros , которое находится на вкладке View на ленте Excel (или в раскрывающемся меню T ools в Excel 2003). Эти параметры показаны на изображениях ниже:
Запись макроса в текущих версиях Excel (2007 и более поздних версиях):
Запись макроса в Excel 2003:
После этого появится диалоговое окно «Запись макроса». справа вверху.Это поле позволяет вам ввести имя и описание для вашего макроса, если хотите. Хорошая идея — дать макросу осмысленное имя, чтобы, когда вы вернетесь к макросу позже, это поможет вам запомнить, что он делает. Однако, если вы не укажете имя, Excel автоматически назначит имя макроса (например, Macro1, Macro2 и т. Д.).
Диалоговое окно «Запись макроса» также дает вам возможность назначить сочетание клавиш для вашего макроса. Это значительно упростит запуск макроса.Однако вы должны быть осторожны, чтобы не назначить макросу одну из предопределенных комбинаций клавиш Excel (например, CTRL-C). Если вы выберете существующую комбинацию клавиш Excel, она будет перезаписана вашим макросом, и вы или другие пользователи можете случайно выполнить свой код макроса.
Если вас устраивает имя макроса и (при необходимости) сочетание клавиш, выберите OK, чтобы начать запись макроса.
Когда макрос начинает запись, каждое действие, которое вы выполняете (ввод данных, выбор ячеек, форматирование ячеек, прокрутка листа вниз и т. Д.)) будет записан в новом макросе как код VBA.
Кроме того, во время записи макроса кнопка остановки будет отображаться в нижнем левом углу вашей книги (или в Excel 2003 кнопка остановки будет представлена вам на плавающей панели инструментов), как показано ниже:
Кнопка остановки макроса в Excel 2007 и более поздних версиях Excel: | Панель инструментов макроса записи в Excel 2003: |
После выполнения действий, которые вы хотите записать, вы можете остановить запись макроса, нажав на кнопку остановки.Теперь ваш код макроса будет сохранен в модуле редактора Visual Basic.
Параметр «Использовать относительные ссылки»
Если вы выберете параметр Использовать относительные ссылки во время записи макроса, то все ссылки на ячейки в макросе будут относительно . Однако, если параметр Использовать относительные ссылки не был выбран, любые ссылки на ячейки, появляющиеся в коде, будут иметь значение абсолютное (см. Страницу Ссылки на ячейки Excel, если вы хотите узнать больше об этих двух типах ссылок на ячейки).
Параметр Использовать относительные ссылки находится в меню Macros (и находится на панели инструментов макросов в Excel 2003). Это проиллюстрировано на изображениях ниже:
Параметр относительных ссылок в текущих версиях Excel: | Использовать относительные ссылки Кнопка в Excel 2003: |
Просмотр кода VBA
Код VBA, созданный макросом, помещается в модуль, который можно просмотреть в редакторе Visual Basic.Его можно открыть, нажав Alt + F11 (т.е. нажмите клавишу ALT и, удерживая ее нажатой, нажмите F11).
Код находится в одном из модулей в окне проекта, которое находится слева от визуального базового редактора. В простом окне проекта, показанном справа вверху, вы можете просмотреть этот код, дважды щелкнув «Модуль 1».
Запуск записанных макросов Excel
При записи макросов Excel всегда создает подпроцедуру (а не функцию-процедуру).Если вы назначили макросу сочетание клавиш, то это сочетание клавиш будет самым простым способом запуска макроса. В противном случае макрос можно запустить, выполнив следующие действия:
- Нажмите Alt + F8 (т.е. нажмите клавишу ALT и, удерживая ее, нажмите F8), чтобы открыть диалоговое окно «Макрос»;
- В диалоговом окне «Макрос» выберите макрос, который нужно запустить;
- Щелкните R un .
Ограничения
Хотя функция записи макросов Excel — это очень простой способ создания кода VBA, ее можно использовать только для очень простых макросов.Это потому, что он не может использовать многие функции VBA, такие как:
- Определенные константы, переменные и массивы;
- Если утверждения;
- Петли;
- Вызов встроенных функций или других процедур.
Кроме того, средство записи может создавать только подпроцедуры (не функциональные процедуры), так как не может возвращать значение. Этим подпроцедурам нельзя передавать какие-либо аргументы, хотя они могут идентифицировать текущие активные ячейки, диапазоны или рабочие листы, а также значения, хранящиеся в ячейках книги.Также следует отметить, что сгенерированный код не всегда является наиболее эффективным кодом для требуемых действий.
Хотя автоматически сгенерированный код VBA в Excel подходит для простых макросов, если вы хотите создавать более сложные макросы, вы можете научиться писать код VBA для себя. Однако функция записи макросов в Excel — отличный инструмент, который предоставляет вам код, который можно адаптировать или вставить в более сложные макросы.
Вернуться к Написание макросов Excel страница
Вернуться к ExcelFunctions.net Домашняя страница.
Запись макроса в Excel
Загрузка …
Как записать макрос в Excel? Лучший способ изучить Excel VBA — это точно записывающих макросов . Это особенно полезно, если вы хотите автоматизировать рутинные задачи Excel, например. форматирование выбранных ячеек и т. д. В этом случае вы можете записать последовательность шагов / щелчков / введенного текста и т. д., и Excel переведет это в код VBA, создав новый модуль в вашем проекте VBA.
Устройство записи макросов VBA
Перейдите на вкладку «Разработчик» и нажмите Запись макроса
Для начала записи перейдите на вкладку Developer :
Нажмите кнопку «Запись макроса»
Теперь нажмите кнопку «« Запись макроса », чтобы начать запись:
Заполните форму записи макроса и нажмите OK
Теперь вы увидите следующую форму.Укажите Имя для записанной процедуры (без пробелов). Вы также можете связать ярлык Excel с записанным макросом. Для этого введите букву или цифру в текстовое поле Shortcut Key , например. введите «T», который должен создать следующий ярлык:
CTRL + SHIFT + T
Затем нажмите OK.
Записать форму макроса
Сделайте что-нибудь в Excel, что вы хотите записать
Теперь почти каждый щелчок мышью и нажатие на клавиатуру будет записываться и переводиться в макрос Excel VBA.Для этого урока я бы рекомендовал протестировать типичный полезный сценарий:
- Щелкните на отдельной ячейке
- Изменить цвет фона
- Изменить шрифт на Полужирный / Курсив и т. Д.
Остановить запись макроса
Нажмите кнопку Остановить запись , чтобы остановить запись макроса:
Остановить запись макроса VBA
Выполнить записанный макрос
Предполагая, что записанный макрос теперь можно повторно использовать, давайте попробуем выполнить его.Вы можете выполнить макрос 3 способами:
- Используйте ярлык CTRL + SHIFT + T
- Перейдите на вкладку Developer на ленте Excel и щелкните Macros :
Щелкните MacrosДалее выберите свой макрос и нажмите Run .
Выполнить макрос Excel
- Перейдите в проект VBA , щелкните процедуру макроса и нажмите F5
Просмотр сгенерированного кода, записанного с помощью кнопки «Запись макроса»
Давайте теперь откроем наш проект VBA и посмотрим на записанный макрос.Откройте свой проект VBA, нажав кнопку Visual Basic на вкладке Developer .
Щелкните Visual Basic
. Теперь найдите новый модуль в своем проекте VBA и щелкните этот элемент:
.
Щелкните по только что созданному модулю
. Код, сгенерированный кнопкой Record Macro , должен выглядеть примерно так:
Дополнительный макрос1 ()
‘
‘Macro1 Macro
‘
Сочетание клавиш: Ctrl + Shift + T
‘
Selection.Font.Bold = True
Выбор.Font.Italic = True
Selection.Font.Underline = xlUnderlineStyleSingle
С Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535.
.TintAndShade = 0
.PatternTintAndShade = 0
Конец с
Конечный переводник
1 2 3 4 5 6 7 8 9 10 11 12 13 14 13 14 | Sub Macro1 () ‘ ‘ Macro1 Macro ‘ ‘ Сочетание клавиш: Ctrl + Shift + T ‘ Selection.Font.Bold = True Selection.Font.Italic = True Selection.Font.Underline = xlUnderlineStyleSingle With Selection.Interior .Pattern = xlSolid .PatternColorIndex . TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub |
.