Телевизоры. Приставки. Проекторы и аксессуары. Технологии. Цифровое ТВ

Как задавать макросы в excel. Как включить макросы в Excel. Макросы в Excel: примеры. Создание кнопки для запуска макросов в панели инструментов

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

Чтобы записать макрос, нужно включить режим записи. Это можно сделать на вкладке Вид (View) в разделе Макросы (Macros) или в меню Сервис (Tools), если у Вас Excel 2003. Ниже на картинках показано, как выглядят эти меню.

Здесь, по желанию, можно ввести имя и описание для макроса. Рекомендуется давать макросу такое имя, чтобы, вернувшись к нему спустя некоторое время, можно было без труда понять, для чего этот макрос нужен. Так или иначе, если не ввести для макроса имя, то Excel автоматически назовёт его Макрос1 , Макрос2 и так далее.

Здесь же можно назначить сочетание клавиш для запуска записанного макроса. Запускать макрос таким способом будет значительно проще. Однако будьте осторожны! Если случайно назначить для макроса одно из предустановленных клавиатурных сочетаний Excel (например, Ctrl+C ), то в дальнейшем макрос может быть запущен случайно.

Когда макросу дано подходящее имя и (при желании) задано сочетание клавиш, нажмите ОК , чтобы запустить запись макроса. С этого момента каждое действие (ввод данных, выделение ячеек, изменение формата ячеек, пролистывание листа и так далее) будет записано в макрос и сохранено в виде кода VBA.

При включении режима записи макроса в строке состояния (внизу слева) появляется кнопка Стоп . В Excel 2003 эта кнопка находится на плавающей панели инструментов.


Нажмите Стоп , когда выполните все действия, которые должны быть записаны в макрос. Теперь код записанного макроса сохранён в модуле редактора Visual Basic .

Параметр «Относительные ссылки»

Просмотр кода VBA

Код VBA, записанный в макрос, размещается в модуле, который можно просмотреть в редакторе Visual Basic . Редактор можно запустить нажатием Alt+F11 (одновременное нажатие клавиш Alt и F11 ).

Код находится в одном из модулей, которые расположены в окне Project слева от области редактирования. Если дважды кликнуть по Module1 в окне Project , то справа появится код записанного макроса.

Запуск записанного макроса в Excel

Записывая макрос, Excel всегда создаёт процедуру Sub (не Function ). Если при создании макроса к нему было прикреплено сочетание клавиш, то именно с его помощью запустить макрос будет проще всего. Существует и другой способ запустить макрос:

  • Нажмите Alt+F8 (одновременно нажмите клавиши Alt и F8 );
  • В появившемся списке макросов выберите тот, который нужно запустить;
  • Нажмите кнопку В ыполнить (Run).

Ограничения

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

  • Константы, переменные и массивы;
  • Выражения IF ;
  • Циклы;
  • Обращения к встроенным функциям или внешним процедурам.

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

Автоматическое создание кода VBA в Excel отлично работает для простых макросов, но если нужно построить более сложный макрос, то придётся научиться писать код VBA самостоятельно. Тем не менее, запись макроса в Excel – это отличны инструмент, при помощи которого можно создавать первоначальный код, а в дальнейшем исправлять или вставлять его в более сложные макросы.

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

Рассмотрим два примера:

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 , скопированный макрос вставиться в модуль:

Макросы в 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 :

Грамотно организовать процесс работы в эксэле помогут такие объекты, как макросы в Excel.

Рассмотрим более подробно все особенности работы с данными объектами в пакете программ MS Office.

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

Что такое макросы и зачем они нужны

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

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

Их создание и использование поможет существенно сэкономить время и максимально автоматизировать роботу в программе.

Важно! Благодаря созданному макросу можно просто мгновенно выполнять работу, в то время, как выполнение вручную занимало бы много времени.

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

С понятием макроса можно также столкнуться в программе Ворд, но в Экселе он имеет несколько преимуществ:

  • Во-первых, он объединяет все инструкции в один полный сценарий выполнения, что позволяет оптимизировать нагрузку на программу и начать работать быстрее;
  • Вызвать его можно с помощью клавиши на панели инструментов или с помощью специальной комбинации клавиш . Это позволит пользователю не отрываться от клавиатуры в процессе работы;

Создание собственных макросов в Excel 2010, 2007, 2013

Рассмотрим более подробно примеры создания в Excel 2007, 2013:


  • Откройте документ, с которым работаете и для которого хотите создать макрос. К слову, каждая ячейка, над которой производится действие должна быть проработана;
  • Отобразите вкладку разработчика в ленте. Для этого откройте пункт меню «Файл» и откройте параметры, как показано на рисунке;

  • Затем выберите настройку ленты и добавьте окно разработчика в список основных окон, как это показано на рисунке ниже;

  • Теперь можно перейти непосредственно к созданию самого макроса пользователя. После его создания, каждая ячейка будет автоматизирована – это означает, что любая ячейка пользовательского документа будет выполнять однотипное действие, которое укажет пользователь;
  • Найдите во вкладке разработчика специальную клавишу для создания. Ее расположение указано на рисунке ниже;

  • Нажмите на клавишу. Появится окно создания, в котором необходимо указать имя, сочетание клавиш, с помощью которых он будет включаться. Также можно добавить короткое описание функционирования макроса. Это необходимо сделать, если у вас их слишком много, чтобы не запутаться;

  • Далее нажмите «ОК» . Окно закроется и начнется процесс записи. Для остановки записи, нажмите соответствующую клавишу на панели управления;
  • Теперь начните выполнять те действия, которые будут записаны в макрос. Каждая ячейка при этом может заполняться определенными данными.
    Можно также работать только с одной ячейкой, после записи и включения макроса эта же ячейка будет записываться согласно указанному алгоритму;
  • Не забудьте нажать кнопку остановки записи данных. После выполнения всех вышеприведенных действия он будет записан и сохранен в программе.

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

Для этого следуйте нижеприведенной инструкции:


  • На вкладке разработчика найдите кнопку под названием «Макросы» . Нажмите на нее;

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

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

Создание и удаление макросов

Макросы создаются с помощью языка программирования под названием Visual Basic (или просто аббревиатура VB).

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

Впервые технология создания макросов в программе Эксель была усовершенствована и стала доступна для использования простыми юзерами в версии 2007-го года.

Удобнее всего их создавать в таких версиях Ворда: 2007, 2010, 2013.

Меню макросов

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

Существую разные типы операторов.

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

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

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

Самый простой способ, чтобы начать создание собственного пользовательского макроса – это открыть средство записи.

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

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

Чтобы удалить макрос, следуйте инструкции:


  1. Откройте окно управления с помощью клавиши «Макросы» на главной вкладке разработчика;
  2. Выберите необходимый вам объект и в правой части окна нажмите на кнопку удаления;

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

Вкладка «Разработчик»

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

Excel 2010-2016

Переходим по пути: Файл - Параметры - Настроить ленту. В разделе «Настроить ленту» справа в списке «Основные вкладки» устанавливаем флажок «Разработчик» и нажимаем кнопку «OK».

Excel 2007

Переходим по пути: значок «Microsoft Office» - Параметры Excel - категория «Основные», в категории «Основные» устанавливаем флажок «Показывать вкладку «Разработчик» на ленте» и нажимаем кнопку «OK».

Excel 2000-2003

Здесь ничего отображать не надо: кнопки по работе с макросами и редактором VBA находятся в главном меню на вкладке «Сервис» - «Макрос».

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

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

Excel 2007-2016

На ленте во вкладке «Разработчик» нажмите кнопку «Запись макроса».

Excel 2000-2003

Пройдите по пунктам меню «Сервис» - «Макрос» - «Начать запись».

Откроется окно:

Имя макроса: можно изменить или оставить по умолчанию («Макрос» с очередным номером). Если у вас уже есть макрос с таким именем, он будет записан в новый программный , который будет создан автоматически.

Сочетание клавиш: добавьте букву, если хотите запускать макрос сочетанием клавиш Ctrl+«буква» . В какой раскладке вы впишите букву (например, «й» или «q»), в той и будет запускаться макрос. Если буква будет вписана в верхнем регистре («Й» или «Q»), используйте для запускa макроса сочетание клавиш Ctrl+Shift+«буква» .

  • «Эта книга» - макрос будет записан в книге, из которой рекордер был запущен (нажата кнопка «Запись макроса»).
  • «Новая книга» - откроется новая книга и макрос будет записан в ней.
  • «Личная книга макросов» - макрос запишется в и будет доступен из всех открытых книг Excel.

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

Заполнив окно, нажимаем кнопку «OK», кнопка «Запись макроса» меняет свое название на «Остановить запись», и можно приступать, собственно, к записи макроса. Выполните на рабочем листе операции, последовательность которых вы хотите автоматизировать и, после их завершения, Макрос будет записан и появится в списке макросов.

Список макросов

Окно со списком макросов открывается во всех версиях Excel нажатием кнопки «Макросы». Выглядит оно следующим образом:


  • Выполнить - выделенный макрос будет запущен на выполнение.
  • Войти - переход к коду макроса, запущенному и поставленному на паузу, как при обнаружении ошибки в коде.
  • Изменить - переход к коду макроса для редактирования.
  • Создать - кнопка станет активной при записи имени нового макроса в поле «Имя макроса».
  • Удалить - удаление выделенного макроса.
  • Параметры... - редактирование сочетания клавиш для запуска макроса и его описания.
  • Находится в: - здесь можно выбрать все открытые книги или одну из них.
  • Описание - текст, добавленный в одноименное поле при создании макроса или редактировании его параметров.

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

Запустить записанный макрос можно следующими способами:

  • Сочетанием клавиш, указанным в параметрах макроса.
  • Кнопкой «Выполнить» из окна списка макросов.
  • Кнопкой «Run Sub» или клавишей «F5» из редактора VBA.
  • Кнопкой, добавленной на лист Excel из раздела «Элементы управления формы» и которой назначен запускаемый макрос.

Кроме этого макрос можно назначить изображению, добавить кнопку запуска на панель быстрого доступа и в меню (на ленту).

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

Выполните следующие действия:

Excel 2007-2016

  1. Откройте книгу Excel или создайте новую и сохраните ее как книгу с поддержкой макросов (.xlsm).
  2. На вкладке «Разработчик» нажмите кнопку «Запись макроса».
  3. Перейдите на вкладку «Главная» и выберите любой цвет заливки ячеек.
  4. Нажмите кнопку «Остановить запись».

Excel 2000-2003

  1. Откройте книгу Excel или создайте новую и сохраните ее с расширением по умолчанию (.xls).
  2. Включите запись макроса, пройдя по пунктам меню «Сервис» - «Макрос» - «Начать запись».
  3. В окне «Запись макроса» нажмите кнопку «OK», оставив параметры по умолчанию.
  4. На панели инструментов выберите любой цвет заливки ячеек.
  5. Нажмите кнопку «Остановить запись».

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

Откройте список макросов, выберите записанный макрос и нажмите кнопку «Изменить». Вы увидите код вашего макроса:

Sub Макрос1() " " Макрос1 Макрос " " With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 5296274 .TintAndShade = 0 .PatternTintAndShade = 0 End With End Sub

Число (5296274) в вашем примере будет другим, в зависимости от выбранного .

Выберите на активном листе любую ячейку или диапазон, вернитесь в редактор VBA и нажмите клавишу «F5» (курсор должен находиться в любом месте внутри кода запускаемого макроса). На активном листе выделенный диапазон окрасится в выбранный при записи макроса цвет.

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

Sub Макрос2() Selection.Interior.Color = 5296274 End Sub

Скопируйте этот код и вставьте его внизу, под вашим макросом, в редакторе VBA (числовое значение цвета можете изменить на свое или оставить, как в примере). Проверьте его работоспособность, выбрав незакрашенные ячейки и запустив макрос клавишей «F5», не забыв о том, что курсор должен находиться внутри этого макроса.

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

Назначение макроса кнопке

Теперь давайте назначим записанный макрос (любой из двух) кнопке, добавленной на лист Excel из раздела «Элементы управления формы»:

Excel 2007-2016

  1. На вкладке «Разработчик» нажмите кнопку «Вставить» и в разделе «Элементы управления формы» кликните по изображению кнопки.
  2. Переведите курсор на табличную область листа, курсор примет вид крестика, и кликните левой кнопкой мыши.

Excel 2000-2003

    1. Отобразите панель инструментов «Формы», пройдя по пунктам меню «Вид» - «Панели инструментов» - «Формы».
    2. Кликните по Кнопке на панели инструментов «Формы», затем переведите курсор на табличную часть рабочего листа, нажмите левую кнопку мыши и, не отпуская ее, нарисуйте прямоугольник (контур кнопки) нужного размера, затем отпустите кнопку мыши.
    3. В открывшемся окне «Назначить макрос объекту» выберите один из новых макросов и нажмите кнопку «OK». Если нажать кнопку «Отмена», новая кнопка будет создана без назначенного макроса. Его можно будет назначить позднее, кликнув по ней правой кнопкой мыши и выбрав в контекстном меню «Назначить макрос...»

Кнопка создана. Выберите ячейку или диапазон и нажмите созданную кнопку. Цвет фона изменится.

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

Сокращенный вариант кода по очистке фона будет выглядеть так:

Sub Макрос3() Selection.Interior.Pattern = xlNone End Sub

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

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

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

Процедура

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

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

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

Процедура

Подробное рассмотрение макроса

Чтобы ознакомиться с языком программирования Visual Basic, можно изменить макрос.

Чтобы изменить макрос, на вкладке разработчик нажмите кнопку макросы , выберите имя макроса, а затем нажмите кнопку изменить . Откроется редактор Visual Basic.

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

Поэкспериментируйте с кодом, закройте редактор Visual Basic и снова запустите макрос. На этот раз посмотрите, что происходит, если что-то не так.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community , попросить помощи в сообществе Answers community , а также предложить новую функцию или улучшение на веб-сайте



Похожие публикации