Как вставить макрос в Excel
Нам в работе иногда не хватает стандартных возможностей Экселя и приходится напрягать мозги, чтобы написать свою функцию или найти уже готовый макрос для решения данной задачи. Отсюда возникает вопрос: Что такое макрос, как писать и куда его вставлять?
Макрос – это специальная программа, написанная на встроенном в Excel языке программирования VBA (Visual Basic for Applications). Данный язык разработан компанией Microsoft, специально для приложений MS Office.
Как писать макросы – это отдельная большая тема, по которой написаны сотни книг и существует множество сайтов, поэтому мы не будем рассматривать это в данной статье. Для тех, кто интересуется этой темой более подробно, на нашем сайте есть Уроки VBA, где вы сможете ознакомиться с макросами поближе.
Давайте, все-таки, разберем куда макросы нужно вставлять, чтобы они работали в Экселе.
Как добавить VBA код?
Предположим мы имеем готовый макрос для объединения ячеек вместе с текстом (напомним, что стандартно Excel при совмещении ячеек оставляет только текст крайней левой верхней ячейки). Как теперь вставить VBA код нашей функции или процедуры?
Чтобы добавить код макроса, нужно открыть редактор Visual Basic (Alt+F11), правой кнопкой мыши нажать на Microsoft Excel Objects, добавить VBA модуль, выбрав
Теперь копируем туда код нашего макроса:
Нажимаем сохранить и возвращаемся к Excel.
Как запустить макрос?
Чтобы выполнить макрос, нужно выделить необходимые ячейки и выбирать название нашего макроса в меню Вид — Макросы (View — Macros) (Alt+F8):

Жмем кнопку Выполнить (Run) и получаем необходимый нам результат:
Добавление и изменение макроса для элемента управления на листе
Чтобы автоматизировать управление формы или ActiveX формы, с помощью следующих экономий:
- Выполнение действия или операции, когда пользователь щелкает форму, назначив ему макрос.
- Запустите Visual Basic для приложений (VBA) для обработки событий, которые происходят, когда пользователь взаимодействует с ActiveX управления.
Дополнительные сведения о создании макроса см. в теме «Создание и удаление макроса».
Добавление и изменение макроса для управления формы
- Щелкните правой кнопкой мыши нужный макрос и выберите «Назначить макрос». Появится диалоговое окно «Назначение макроса».
- Чтобы указать расположение существующего макроса, выберите его расположение в поле «Макрос» одним из следующих образом:
- Чтобы найти макрос во всех открытых книгах, выберите «Все открытые книги».
Примечание: Если макрос, который вы хотите назначить этому средству управления, находится в отдельной книге, сначала откройте эту книгу, чтобы она была доступна в списке «Макрос».
- Запись нового макроса Нажмите кнопку«Запись» и по завершению записи макроса на вкладке «Разработчик» в группе «Код» нажмите кнопку «Остановить «.
- Назначение существующего макроса Дважды щелкните макрос в списке или введите его имя в поле «Имя макроса».
- Создание макроса Нажмите кнопку «Создать» и в редакторе Visual Basic ввести новый макрос. Дополнительные сведения о том, как писать макрос, см. в Visual Basic справке. Изменение назначенного макроса Выполните одно из указанных ниже действий.
- Изменение назначенного макроса Щелкните имя макроса в поле «Имя макроса» и нажмите кнопку «Изменить».
- Назначение другого существующего макроса Дважды щелкните макрос в списке или введите его имя в поле «Имя макроса».
Добавление и изменение макроса для ActiveX управления
- Если вкладка Разработчик недоступна, отобразите ее. В Excel 2016, 2013 и 2010:
- Щелкните Файл >Параметры >Настроить ленту.
- В окне «Настройка ленты»выберите поле «Разработчик» и нажмите кнопку «ОК».
- Нажмите кнопку Microsoft Office , а затем — кнопку Параметры Excel.
- В категории «Популярные» в области «Топ параметров работы с Excel»выберите на ленте вкладку «Разработчик» и нажмите кнопку «ОК».
Примечание: Чтобы изменить существующий макрос, щелкните его правой кнопкой мыши и выберите «Код представления».
Краткое руководство: создание макроса
Если у вас есть Microsoft Excel задачи, которые вы делаете несколько раз, вы можете записать макрос, чтобы автоматизировать эти задачи. Макрос — это действие или набор действий, которые можно выполнить сколько угодно раз. При создании макроса записуются щелчки мышью и нажатия клавиш. После создания макроса его можно отредактировать, чтобы внести незначительные изменения в его работу.
Предположим, что каждый месяц вы создаете отчет для бухгалтера. Вы хотите отформатировать имена клиентов с просроченными учетными записями красным цветом, а также применить полужирное на форматирование. Вы можете создать и запустить макрос, который быстро применяет эти изменения форматирования к выбранным ячейкам.
Процедура
Перед записью макроса
Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки «Разработчик».
Запись макроса
Подробнее о макросах
Вы можете узнать немного о языке программирования Visual Basic путем редактирования макроса.
Чтобы изменить макрос, в группе Код на вкладке Разработчик нажмите кнопку Макрос, выберите имя макроса и нажмите кнопку Изменить. При этом Visual Basic редактора.
Узнайте, как записанные действия отображаются как код. Возможно, какой-то код вам понятен, а часть может показаться немного неявным.
Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос. На этот раз посмотрите, не произойдет ли что-то другое!
Дальнейшие действия
- Дополнительные информацию о создании макроса см. в теме Создание и удаление макроса.
- Чтобы узнать, как запускать макрос, см. в этой теме.
Процедура
Перед записью макроса
Убедитесь, что на ленте отображается вкладка Разработчик. По умолчанию вкладка Разработчик не отображается, поэтому сделайте следующее:
- Перейдите в Excel >параметры. >ленты & панель инструментов.
- В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.
Запись макроса
- На вкладке Разработчик нажмите кнопку Запись макроса.
- При желании введите имя макроса в поле Имя макроса, введите сочетания клавиш в поле Сочетания клавиш и описание в поле Описание, а затем нажмите кнопку ОК, чтобы начать запись.
- Выполните действия, которые нужно автоматизировать, например ввести шаблонный текст или заполнить столбец данных.
- На вкладке Разработчик в группе Код нажмите кнопку Остановить запись.
Подробнее о макросах
Вы можете узнать немного о языке программирования Visual Basic путем редактирования макроса.
Чтобы изменить макрос, на вкладке Разработчик нажмите кнопку Макрос ,выберите имя макроса и нажмите кнопку Изменить. При этом Visual Basic редактора.
Узнайте, как записанные действия отображаются как код. Возможно, какой-то код вам понятен, а часть может показаться немного неявным.
Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос. На этот раз посмотрите, не произойдет ли что-то другое!
Дополнительные сведения
Вы всегда можете задать вопрос эксперту в Excel Tech Community или получить поддержку в сообществах.
Как добавить макрос в excel
Если Вы не сильны в программировании, но, при этом, Вам необходимо реализовать какую-либо задачу, выходящую за рамки стандартных функций и команд MS Excel, можно поискать решение в интернете. Решение, скорее всего, найдется в виде VBA кода, который необходимо скопировать и вставить в Вашу рабочую книгу, потом каким-то образом заставить этот код работать на Вас, в этой статье я расскажу, как это сделать.
Файлы для скачивания:
Файл Описание Размер файла: Скачивания Пример 14 Кб 2916 Рассмотрим два примера:
1. Ищем и используем команду
Например, нам необходима команда, которая бы вставляла в выделенные ячейки цифру «1». Запускаем поисковик, набираем поисковую фразу, получаем результаты, начинаем просматривать, находим код примерно в таком виде:
Sub Вставка1() Dim q As Object On Error Resume Next Set q = Cells For Each q In Selection q = 1 Next q End Sub
Выделяем данный код (без нумерации строк, начиная со слова Sub) и нажимаем Ctrl+C. Переходим в свою рабочую книгу MS Excel и нажимаем сочетание клавиш Alt+F11, у вас откроется окно редактора VBA:

В левом окне «Project — VBA Project» выбираем (щелкаем мышкой) нашу рабочую книгу, в которую необходимо вставить макрос, например, «VBAProject (Книга2)»:

В пункте меню «Insert» выбираем «Module»:

В левом окне «Project — VBA Project» у вас должна появиться новая папка «Modules» и в ней новый объект «Module1»:

Переходим курсором в правое «Большое» поле для ввода и нажимаем Ctrl+V, скопированный макрос вставиться в модуль:

После чего закрываем редактор VBA и возвращаемся в рабочую книгу.
Если вы работаете в MS Excel 2007, 2010 или 2013, вам необходимо будет сохранить вашу рабочую книгу как «Книга Excel с поддержкой макросов (.xlsm)»:

В MS Excel 2003 достаточно будет просто сохранить файл.
Чтобы выполнить скопированный в книгу макрос выделяем ячейки, в которые необходимо вставить «1», нажимаем в меню «Вид» кнопку «Макросы» и в выпавшем списке выбираем пункт «Макросы» или нажимаем сочетание клавиш Alt+F8:

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

Макрос выполнится — в выделенные ячейки вставиться «1»:

Макросы в MS Excel можно вставлять в следующие места:
- В Модуль, обычно вставляют код макросов, запуск которых будет производится по нажатию кнопки пользователем (как, например, в нашем случае) или код функций (формул);
- В Рабочий лист, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий пользователя или изменения данных в листе (поменялись данный, макрос выполнился);
- В Рабочую книгу, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий, производимых над книгой (файлом). Например, макрос, который запускается при открытии или закрытии книги, или при ее сохранении;
- Так же макросы могут быть частью пользовательской формы.
Обычно, человек, который публикует код, указывает, куда его необходимо вставить, в модуль, в лист или книгу.
Чтобы вставить код в Рабочий лист, в левом окне редактора VBA выберите соответствующий лист, щелкните по нему два раза левой кнопкой мышки, переместите курсор в правое поле ввода и вставьте код.

Для вставки кода в Книгу, выберите «ЭтаКнига»:

Давайте потренируемся. Вставьте код опубликованный ниже в «Лист1».
Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo a If Target = 2 Then VBA.MsgBox ("Ячейка " & Target.Address & " = 2") End If a: Exit Sub End SubДанный макрос выводит информационное сообщение если вы введете в любую ячейку листа «2».
Вернитесь в рабочую книгу, перейдите в «Лист1» и введите в ячейку «А1» цифру «2» и нажмите Enter, после чего у вас должно появиться следующее сообщение:

Если вы видите это сообщение, то вы все сделали правильно. Если нет, то вы вставили код куда-то не туда, повторите попытку.
При вставке кода, необходимо внимательно следить за тем, куда вы его вставляете. Это можно сделать посмотрев на то, что написано в заголовке окна редактора VBA:

2. Ищем и используем функцию
Находим в интернете VBA код функции, которая подсчитывает, например, количество слов в ячейке:
Public Function КолСловВЯчейке(Ячейка As Range) Dim q As Variant Application.Volatile q = VBA.Split(Application.WorksheetFunction.Trim(Ячейка.Value), " ") КолСловВЯчейке = UBound(q) + 1 End Function
Копируем код, нажимаем сочетание клавиш Alt+F11, откроется редактор VBA:

Добавляем новый модуль в свою книгу и в этот модуль вставляем скопированный код:

Закрываем редактор VBA и переходим в свою рабочую книгу. Создаем новый лист (необязательно) в ячейку A1 вводим текст «мама мыла раму». Встаем в ячейку, в которой хотим получить результат (количество слов), в меню «Формулы» нажимаем кнопку «Вставить функцию»:

В открывшемся окне «Вставка функции» в поле «Категория» выбираем «Определенные пользователем»

В списке доступных функций выбираем «КолСловВЯчейке», нажимаем «ОК»:

Вводим необходимые аргументы и нажимаем «ОК»:


Важно:
Если вы не сохраните книгу, в которую вставили макрос как «Книгу с поддержкой макросов», все модули с макросами удаляться и вам придется, потом, повторно проделывать всю эту работу.
Если при вставке макроса в модуль у вас вместо некоторого текста стоят красные знаки » . «

Это значит, что у вас проблема с кодировкой, которая наблюдается с копированием Кириллического текста из некоторых браузеров. Чтобы победить эту проблему, попробуйте вставить скопированный код в пустой лист MS Excel, как «Текст в кодировке Unicode». Для этого перейдите в книгу MS Excel, выберите или создайте пустой лист, встаньте в ячейку «A1» и нажмите сочетания клавиш Ctrl+Alt+V. Должно будет появиться меню «Специальной вставки», выберите пункт «Текст в кодировке Unicode» и нажмите «OK».

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

После этого, еще раз скопируйте вставленный в лист код, и вставить его уже в модуль.
Если вы не видите в редакторе VBA окна «Project — VBA Project», перейдите во вкладку меню «View» и в списке выберите пункт «Project Explorer» или нажмите сочетание клавиш Ctrl+R:
