Excel как добавить макрос на ленту

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

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

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

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

  2. В списке Выбрать команды из выберите пункт Макрос.

    Команды для панели быстрого доступа

  3. Выберите макрос, для который нужно назначить кнопку.

  4. Нажмите кнопку Добавить, чтобы переместить макрос в список кнопок на панели быстрого доступа.

  5. Чтобы заменить значок макроса по умолчанию другой кнопкой для макроса, нажмите кнопку Изменить.

  6. В области Символвыберите значок кнопки для макроса.

    Диалоговое окно "Изменение кнопки"

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

    В имя кнопки можно ввести пробел.

  8. Дважды нажмите кнопку ОК.

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

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

Добавление кнопки макроса в группу на ленте

  1. Щелкните Файл > Параметры > Настроить ленту.

  2. В списке Основные вкладки в списке Настроить ленту, если он еще не был проверен,в поле Разработчик.

    Диалоговое окно настройки ленты

  3. Выберите вкладку, на которой вы хотите добавить свою группу.

    Например, выберите Главная, чтобы добавить группу на вкладку Главная.

  4. Выберите Новая группа.

    При этом новая группа (настраиваемая) будет добавлена на вкладку, которую вы выбрали.

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

    В имени можно ввести пробел. Например, введите Мои макросы.

  6. Чтобы добавить макрос в группу, в списке Выбрать команды из выберите пункт Макрос.

  7. Выберите макрос, который вы хотите добавить в новую группу, и нажмите кнопку Добавить. Макрос будет добавлен в группу Мои макросы.

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

    В имени можно ввести пробел.

  9. В области Символвыберите значок кнопки для макроса.

  10. Дважды нажмите кнопку ОК.

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

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

Более новые версии

  1. На вкладке Разработчик в группе Элементы управления щелкните Кнопка.

    Если вкладка «Разработчик» недоступна:

    1. Перейдите в Excel > параметры… >ленты & панели инструментов.

    2. В разделе Настройка ленты в разделе Основныевкладки, в разделе Разработчики нажмите кнопку ОК.

  2. Щелкните на листе место, где должен быть расположен левый верхний угол кнопки.

  3. В диалоговом окне Назначение макроса щелкните имя макроса, который вы хотите назначить кнопке, и нажмите ОК.

  4. Чтобы изменить размер кнопки, перетащите маркеры.

  5. Чтобы задать свойства кнопки, щелкните ее, нажав клавишу CONTROL, или щелкните ее правой кнопкой мыши, а затем выберите форматирование.

Excel 2011 для Mac

  1. На вкладке Разработчик в группе Элементы управления формы щелкните Кнопка.

    Если вкладка «Разработчик» недоступна:

    1. В правой части ленты нажмите кнопку Всплывающее меню "Действие"и выберите параметры ленты.

    2. В разделе Настройки установите флажок Разработчик.

  2. Щелкните на листе место, где должен быть расположен левый верхний угол кнопки.

  3. В диалоговом окне Назначение макроса щелкните имя макроса, который вы хотите назначить кнопке, и нажмите ОК.

  4. Чтобы задать свойства кнопки, щелкните ее, нажав клавишу CONTROL, или щелкните ее правой кнопкой мыши, а затем выберите форматирование.

Даже если вы не умеете программировать, то существует множество мест (книги, сайты, форумы), где можно найти готовый код макросов на VBA для огромного количества типовых задач в Excel. По моему опыту, большинство пользователей рано или поздно собирают свою личную коллекцию макросов для автоматизации рутинных процессов, будь то перевод формул в значения, вывод суммы прописью или суммирования ячеек по цвету. И тут встает проблема — код макросов на Visual Basic нужно где-то хранить, чтобы потом использовать в работе.

Самый простой вариант — сохранять код макросов прямо в рабочем файле, зайдя в редактор Visual Basic с помощью сочетания клавиш Alt+F11 и добавив новый пустой модуль через меню Insert — Module:

Добавление модуля в книгу

При таком способе возникает, однако, несколько неудобств:

  • Если рабочих файлов много, а макрос нужен везде, как например макрос преобразования формул в значения, то и копировать код придется в каждую книгу.
  • Нужно не забыть сохранить файл в формате с поддержкой макросов (xlsm) или в формате двоичной книги (xlsb).
  • При открытии такого файла защита от макросов будет каждый раз выдавать предупреждение, которое нужно подтвердить (ну, или отключить защиту полностью, что может быть не всегда желательно).

Более изящным решением будет создание своей собственной надстройки (Excel Add-in) — отдельного файла особого формата (xlam), содержащего все ваши «любимые» макросы. Плюсы такого подхода:

  • Достаточно будет один раз подключить надстройку в Excel — и можно будет использовать её VBA процедуры и функции в любом файле на этом компьютере. Пересохранять ваши рабочие файлы в xlsm- и xlsb-форматы, таким образом, не потребуется, т.к. исходный код будет храниться не в них, а в файле надстройки.
  • Защита от макросов вас тоже беспокоить уже не будет, т.к. надстройки по определению входят в доверенные источники.
  • Можно сделать отдельную вкладку на ленте Excel с красивыми кнопками для запуска макросов надстройки.
  • Надстройка — это отдельный файл. Его легко переносить с компьютера на компьютер, делиться им с коллегами или даже продавать ;)

Давайте рассмотрим весь процесс создания своей собственной надстройки для Microsoft Excel по шагам.

Шаг 1. Создаем файл надстройки

Открываем Microsoft Excel с пустой книгой и сохраняем ее под любым подходящим именем (например MyExcelAddin) в формате надстройки с помощью команды Файл — Сохранить как или клавиши F12, указав тип файла Надстройка Excel (Excel Add-in):

Сохраняем файл в формате надстройки

Обратите внимание, что стандартно Excel хранит надстройки в папке C:UsersВаше_имяAppDataRoamingMicrosoftAddIns, но, в приниципе, можно указать любую другую удобную вам папку.

Шаг 2. Подключаем созданную надстройку

Теперь созданную нами на прошлом шаге надстройку MyExcelAddin надо подключить к Excel. Для этого идем в меню Файл — Параметры — Надстройки (File — Options — Add-Ins), жмем на кнопку Перейти (Go) в нижней части окна. В открывшемся окне жмем кнопку Обзор (Browse) и указываем положение нашего файла надстройки.

Если вы все сделали правильно, то наша MyExcelAddin должна появиться в списке доступных надстроек:

Список надстроек

Шаг 3. Добавляем в надстройку макросы

Наша надстройка подключена к Excel и успешно работает, но в ней нет пока ни одного макроса. Давайте её наполним. Для этого нужно открыть редактор Visual Basic сочетанием клавиш Alt+F11 или кнопкой Visual Basic на вкладке Разработчик (Developer). Если вкладки Разработчик не видно, то её можно отобразить через Файл — Параметры — Настройка ленты (File — Options — Customize Ribbon).

В левом верхнем углу редактора должно быть окно Project (если его не видно, то включите его через меню View — Project Explorer):

Project Explorer

В этом окне отображаются все открытые книги и запущенные надстройки Microsoft Excel, в том числе и наша VBAProject (MyExcelAddin.xlam) Выделите её мышью и добавьте в неё новый модуль через меню Insert — Module. В этом модуле мы и будем хранить VBA-код наших макросов надстройки.

Код можно либо набрать «с нуля» (если вы умеете программировать), либо скопировать откуда-нибудь уже готовый (что гораздо проще). Давайте, для пробы, введем в добавленный пустой модуль код простого, но полезного макроса:

Код макроса

После набора кода не забудьте нажать на кнопку сохранения (дискетку) в левом верхнем углу.

Наш макрос FormulasToValues, как легко сообразить, преобразует формулы в значения в выделенном предварительно диапазоне. Иногда такие макросы называют еще процедурами. Чтобы его запустить, нужно выделить ячейки с формулами и открыть специальное диалоговое окно Макросы с вкладки Разработчик (Developer — Macros) или сочетанием клавиш Alt+F8. Обычно в этом окне отображаются доступные макросы из всех открытых книг, но макросы надстроек здесь не видны. Несмотря на это, мы можем ввести имя нашей процедуры в поле Имя макроса (Macro name), а затем нажать кнопку Выполнить (Run) — и наш макрос заработает:

Здесь же можно назначить сочетание клавиш для быстрого запуска макроса — за это отвечает кнопка Параметры (Options) в предыдущем окне Макрос:

Назначаем сочетание клавиш макросу

При назначении клавиш имейте ввиду, что здесь учитывается регистр и раскладка клавиатуры. Поэтому, если вы назначите сочетание, например, Ctrl+Й, то, по факту, вам придется в будущем следить за тем, чтобы у вас была включена именно русская раскладка и жать дополнительно Shift, чтобы получить заглавную букву.

Для удобства можно добавить и кнопку для нашего макроса на панель быстрого доступа в левом верхнем углу окна. Для этого выберите Файл — Параметры — Панель быстрого доступа (File — Options — Customize Quick Access Toolbar), а затем в выпадающем списке в верхней части окна опцию Макросы. После этого наш макрос FormulasToValues можно поместить на панель кнопкой Добавить (Add) и выбрать для него значок кнопкой Изменить (Edit):

Назначаем кнопку макросу на панели быстрого доступа

Шаг 4. Добавляем в надстройку функции

Кроме макросов-процедур, существуют еще и макросы-функции или как их еще называют UDF (User Defined Function = пользовательская функция). Давайте создадим в нашей надстройке отдельный модуль (команда меню Insert — Module) и вставим туда код такой функции:

Пользовательская функция

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

Заметьте, что синтаксис функции отличается от процедуры:

  • используется конструкция Function …. End Function вместо Sub … End Sub
  • после названия функции в скобках указываются её аргументы
  • в теле функции производятся необходимые вычисления и затем результат присваивается переменной с названием функции

Также обратите внимание, что эту функцию не нужно, да и невозможно запустить как предыдущий макрос-процедуру через диалоговое окно Макросы и кнопку Выполнить. Такую макрофункцию нужно использовать как стандартную функцию листа (СУММ, ЕСЛИ, ВПР…), т.е. просто ввести в любую ячейку, указав в качестве аргумента значение суммы с НДС:

Используем созданную UDF

… или ввести через стандартное диалоговое окно вставки функции (кнопка fx в строке формул), выбрав категорию Определенные пользователем (User Defined):

Выбираем пользовательскую функцию

Единственный неприятный момент здесь — это отсутствие привычного описания функции в нижней части окна. Чтобы его добавить придется проделать следующие действия:

  1. Откройте редактор Visual Basic сочетанием клавиш Alt+F11
  2. Выделите надстройку в панели Project и нажмите клавишу F2, чтобы открыть окно Object Browser
  3. Выберите в верхней части окна в выпадающем списке свой проект надстройки
  4. Щелкните по появившейся функции правой кнопкой мыши и выберите команду Properties.
  5. Введите описание функции в окно Description
  6. Сохраните файл надстройки и перезапустите Excel.

Добавляем свое описание для UDF

После перезапуска у функции должно отобразиться описание, которое мы ввели:

Описание функции

Шаг 5. Создаем вкладку надстройки в интерфейсе

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

Информация об отображаемых вкладках по умолчанию содержится внутри книги и должна быть оформлена в виде специального XML-кода. Проще всего писать и редактировать такой код с помощью специальных программ — XML-редакторов. Одна из самых удобных (и бесплатных) — это программа Максима Новикова Ribbon XML Editor.

Алгоритм работы с ней следующий:

  1. Закройте все окна Excel, чтобы не было конфликта файлов, когда мы будем редактировать XML-код надстройки.
  2. Запустите программу Ribbon XML Editor и откройте в ней наш файл MyExcelAddin.xlam
  3. При помощи кнопки tabs в левом верхнем углу добавьте заготовку кода для новой вкладки:

    Добавляем новую вкладку для надстройки

  4. В пустые кавычки нужно вписать id нашей вкладки и группы (любые уникальные идентификаторы), а в label — названия нашей вкладки и группы кнопок на ней:

    Добавляем id и названия

  5. При помощи кнопки button на панели слева добавляем заготовку кода для кнопки и дописываем к ней теги:

    Добавляем кнопку

    — label — это текст на кнопке
    — imageMso — это условное название изображения на кнопке. Я использовал иконку с красной кнопкой, которая имеет название AnimationCustomAddExitDialog. Названия всех доступных кнопок (а их несколько сотен!) можно найти на большом количестве сайтов в интернете, если искать по ключевым словам «imageMso». Для начала можно сходить сюда.
    onAction — это имя процедуры обратного вызова — специального короткого макроса, который будет запускать наш основной макрос FormulasToValues. Назвать эту процедуру можно как угодно. Мы добавим её чуть позже.

  6. Проверить правильность всего сделанного можно с помощью кнопки с зеленой галочкой сверху на панели инструментов. Там же рядом нажмите на кнопку с дискетой для сохранения всех изменений.
  7. Закрываем Ribbon XML Editor
  8. Открываем Excel, заходим в редактор Visual Basic и добавляем к нашему макросу процедуру обратного вызова KillFormulas, чтобы она запускала наш основной макрос замены формул на значения.

    Добавляем процедуру обратного вызова

  9. Сохраняем внесенные изменения и, вернувшись в Excel проверяем результат:

    Созданная вкладка для надстройки

Вот и всё — надстройка готова к использованию. Наполните её своими процедурами и функциями, добавьте красивые кнопки — и использовать макросы в работе станет намного проще.

Ссылки по теме

  • Что такое макросы, как их использовать в работе, где взять код макросов на Visual Basic.
  • Как сделать заставку при открытии книги в Excel
  • Что такое Личная Книга Макросов и как её использовать

Макрос — это код, написанный на встроенном в Excel языке VBA (Visual Basic for Application). Макросы могут создаваться как вручную, так и записываться автоматически с помощью так называемого макрорекодера.

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

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

Теперь давайте погрузимся и посмотрим, как записать макрос в Excel.

Отображение вкладки «Разработчик» в ленте меню

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

  1. Щелкните правой кнопкой мыши по любой из существующих вкладок на ленте и нажмите «Настроить ленту». Он откроет диалоговое окно «Параметры Excel».Настроить ленту в Excel
  2. В диалоговом окне «Параметры Excel» у вас будут параметры «Настроить ленту». Справа на панели «Основные вкладки» установите флажок «Разработчик».Записать макрос в Excel - Включить вкладку «Разработчик»
  3. Нажмите «ОК».

В результате на ленте меню появится вкладка «Разработчик»

Вкладка разработчика в ленте

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

Теперь давайте запишем очень простой макрос, который выбирает ячейку и вводит в нее текст, например «Excel».

Вот шаги для записи такого макроса:

  1. Перейдите на вкладку «Разработчик».
  2. В группе «Код» нажмите кнопку «Запись макроса». Откроется одноименное диалоговое окно.
    Кнопка «Запись макроса» на вкладке разработчика в ленте
  3. В диалоговом окне «Запись макроса» введите имя для своего макроса, например «ВводТекста». Есть несколько условий именования, которые необходимо соблюдать при назначении макроса. Например, вы не можете использовать пробелы между ними. Обычно я предпочитаю сохранять имена макросов как одно слово, с разными частями с заглавным первым алфавитом. Вы также можете использовать подчеркивание для разделения двух слов — например, «Ввод_текста».
    Имя макроса в диалоговом окне
  4. Если вы хотите, то можете задать сочетание клавиш. В этом случае мы будем использовать ярлык Ctrl + Shift + N. Помните, что сочетание, которое вы указываете, будет отменять любые существующие горячие клавиши в вашей книге. Например, если вы назначили сочетание Ctrl + S, вы не сможете использовать это для сохранения рабочей книги (вместо этого, каждый раз, когда вы его используете, он выполняет макрос).
    Запись макроса в Excel - назначение ярлыка в диалоговом окне
  5. В поле «Сохранить в» убедитесь, что выбрана опция «Эта книга». Этот шаг гарантирует, что макрос является частью рабочей книги. Он будет там, когда вы сохраните его и снова откроете, или даже если вы поделитесь файлом с кем-то.
    Записать макрос в Excel - сохранить макрос в этой книге
  6. Введите описание при необходимости. Обычно я этого не делаю, но если у вас много макросов, лучше указать, чтобы в будущем не забыть что делает макрос.
  7. Нажмите «ОК». Как только вы нажмете OK, Excel начнет записывать ваши действия. Вы можете увидеть кнопку «Остановить запись» на вкладке «Разработчик», которая указывает, что выполняется запить макроса.
  8. Выберите ячейку A2.
  9. Введите текст «Excel» (или вы можете использовать свое имя).
  10. Нажмите клавишу Enter. Вы попадете на ячейку A3.
  11. Нажмите кнопку «Остановить запись» на вкладке «Разработчик».
    Записать макрос в Excel - Остановить запись

Поздравляем! Вы только что записали свой первый макрос в Excel. Хотя макрос не делает ничего полезного, но он поможет нам понять как работает макрорекордер в Excel.

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

  1. Удалите текст в ячейке A2. Это нужно, чтобы проверить будет ли макрос вставлять текст в ячейку A2 или нет.
  2. Выберите любую ячейку — кроме A2. Это нужно проверить, выбирает ли макрос ячейку A2 или нет.
  3. Перейдите на вкладку «Разработчик».
  4. В группе «Код» нажмите кнопку «Макросы».
  5. В диалоговом окне «Макрос» щелкните макрос «ВводТекста».
  6. Нажмите кнопку «Выполнить».
    Записать макрос в Excel

Вы увидите, что как только вы нажмете кнопку «Выполнить», текст «Excel» будет вставлен в ячейку A2 и выбрана ячейка A3. Это происходит за миллисекунды. Но на самом деле макрос последовательно выполнил записанные действия.

Примечание. Вы также можете запустить макрос с помощью сочетания клавиш Ctrl + Shift + N (удерживайте клавиши Ctrl и Shift, а затем нажмите клавишу N). Это тот же самый ярлык, который мы назначили макросу при его записи.

Что записывает макрос?

Теперь перейдем к редактору кода и посмотрим что у нас получилось.

Вот шаги по открытию редактора VB в Excel:

  1. Перейдите на вкладку «Разработчик».
  2. В группе «Код» нажмите кнопку «Visual Basic».

Вы также можете использовать комбинацию клавиш Alt + F11 и перейти в редактор кода VBA.

Рассмотрим сам редактор кода. Далее коротко опишем интерфейс редактора.

Окно редактора кода

  • Панель меню: содержит команды, которые можно использовать во время работы с редактором VB.
  • Панель инструментов — похожа на панель быстрого доступа в Excel. Вы можете добавить к ней дополнительные инструменты, которыми часто пользуетесь.
  • Окно проектов (Project Explorer) — здесь Excel перечисляет все книги и все объекты в каждой книге. Например, если у нас есть книга с 3 рабочими листами, она появится в Project Explorer. Здесь есть несколько дополнительных объектов, таких как модули, пользовательские формы и модули классов.
  • Окно кода — собственно сам код VBA размещается в этом окне. Для каждого объекта, указанного в проводнике проекта, есть окно кода, например, рабочие листы, книги, модули и т. д. В этом уроке мы увидим, что записанный макрос находится в окне кода модуля.
  • Окно свойств — вы можете увидеть свойства каждого объекта в этом окне. Я часто использую это окно для обозначения объектов или изменения их свойств.
  • Immediate Window (окно предпросмотра) — На начальном этапе оно вам не пригодится. Оно полезно, когда вы хотите протестировать шаги или во время отладки. Он по умолчанию не отображается, и вы можете его отобразить, щелкнув вкладку «View» и выбрав опцию «Immediate Window».

Когда мы записали макрос «ВводТекста», в редакторе VB произошли следующие вещи:

  • Был добавлен новый модуль.
  • Макрос был записан с именем, которое мы указали — «ВводТекста»
  • В окне кода добавлена новая процедура.

Поэтому, если вы дважды щелкните по модулю (в нашем случае модуль 1), появится окно кода, как показано ниже.

Код макроса в модуле

Вот код, который записан макрорекодером:

В VBA, любая строка , которая следует за ‘ (знак апострофа) не выполняется. Это комментарий, который предназначен только для информационных целей. Если вы удалите первые пять строк этого кода, макрос по-прежнему будет работать.

Теперь давайте пробежим по каждой строке кода и опишем что и зачем.

Код начинается с Sub, за которым следует имя макроса и пустые круглые скобки. Sub — сокращение для подпрограммы. Каждая подпрограмма (также называемая процедурой) в VBA начинается с Sub и заканчивается End Sub.

  • Range(«A2»).Select — эта строка выбирает ячейку A2.
  • ActiveCell.FormulaR1C1 = «Excel» — эта строка вводит текст «Excel» в активной ячейке. Поскольку мы выбрали ячейку A2 в качестве первого шага, она становится нашей активной ячейкой.
  • Range(«A3»).Select — выбор ячейки A3. Это происходит, когда мы нажимаем клавишу Enter после ввода текста, результатом которого является выбор ячейки A3.

Надеюсь, что у вас есть некоторое базовое понимание того, как записывать макрос в Excel.

Обращаем внимание, что код, записанный через макрорекордер, как правило, не является эффективным и оптимизированным кодом. Макрорекордер часто добавляет дополнительные ненужные действия. Но это не значит, что не нужно пользоваться макрорекодером. Для тех, кто только изучает VBA , макрорекордер может быть отличным способом проанализировать и понять как все работает в VBA.

Абсолютная и относительная запись макроса

Вы уже знаете про абсолютные и относительные ссылки в Excel? Если вы используете абсолютную ссылку для записи макроса, код VBA всегда будет ссылаться на те же ячейки, которые вы использовали. Например, если вы выберете ячейку A2 и введете текст «Excel», то каждый раз — независимо от того, где вы находитесь на листе и независимо от того, какая ячейка выбрана, ваш код будет вводить текст «Excel» в ячейку A2.

Если вы используете параметр относительной ссылки для записи макроса, VBA не будет привязываться к конкретному адресу ячейки. В этом случае программа будет «двигаться» относительно активной ячейки. Например, предположим, что вы уже выбрали ячейку A1, и вы начинаете запись макроса в режиме относительной ссылки. Теперь вы выбираете ячейку A2, вводите текст Excel и нажмите клавишу Enter. Теперь, если вы запустите этот макрос, он не вернется в ячейку A2, вместо этого он будет перемещаться относительно активной ячейки. Например, если выбрана ячейка B3, она переместится на B4, запишет текст «Excel» и затем перейдет к ячейке K5.

Теперь давайте запишем макрос в режиме относительных ссылок:

  1. Выберите ячейку A1.
  2. Перейдите на вкладку «Разработчик».
  3. В группе «Код» нажмите кнопку «Относительные ссылки». Он будет подсвечиваться, указывая, что он включен.
    Запишите макрос в Excel - используя «Относительные ссылки»
  4. Нажмите кнопку «Запись макроса».
    Нажмите кнопку «Запись макроса» на вкладке «Разработчик».
  5. В диалоговом окне «Запись макроса» введите имя для своего макроса. Например, имя «ОтносительныеСсылки».
    Записать макрос в Excel - имя макроса
  6. В опции «Сохранить в» выберите «Эта книга».
  7. Нажмите «ОК».
  8. Выберите ячейку A2.
  9. Введите текст «Excel» (или другой как вам нравится).
  10. Нажмите клавишу Enter. Курсор переместиться в ячейку A3.
  11. Нажмите кнопку «Остановить запись» на вкладке «Разработчик».

Макрос в режиме относительных ссылок будет сохранен.

Теперь сделайте следующее.

  1. Выберите любую ячейку (кроме A1).
  2. Перейдите на вкладку «Разработчик».
  3. В группе «Код» нажмите кнопку «Макросы».
  4. В диалоговом окне «Макрос» кликните на сохраненный макрос «ОтносительныеСсылки».
  5. Нажмите кнопку «Выполнить».

Как вы заметите, макрос записал текст «Excel» не в ячейки A2. Это произошло, потому что вы записали макрос в режиме относительной ссылки. Таким образом, курсор перемещается относительно активной ячейки. Например, если вы сделаете это, когда выбрана ячейка B3, она войдет в текст Excel — ячейка B4 и в конечном итоге выберет ячейку B5.

Вот код, который записал макрорекодер:

Код макроса VBA для относительной ссылки

Обратите внимание, что в коде нет ссылок на ячейки B3 или B4. Макрос использует Activecell для ссылки на текущую ячейку и смещение относительно этой ячейки.

Не обращайте внимание на часть кода Range(«A1»). Это один из тех случаев, когда макрорекодер добавляет ненужный код, который не имеет никакой цели и может быть удален. Без него код будет работать отлично.

Что нельзя сделать с помощью макрорекодера?

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

  • Вы не можете выполнить код без выбора объекта. Например, если вы хотите, чтобы макрос перешел на следующий рабочий лист и выделил все заполненные ячейки в столбце A, не выходя из текущей рабочей таблицы, макрорекодер не сможет этого сделать. В таких случаях вам нужно вручную редактировать код.
  • Вы не можете создать пользовательскую функцию с помощью макрорекордера. С помощью VBA вы можете создавать пользовательские функции, которые можно использовать на рабочем листе в качестве обычных функций.
  • Вы не можете создавать циклы с помощью макрорекордера. Но можете записать одно действие, а цикл добавить вручную в редакторе кода.
  • Вы не можете анализировать условия: вы можете проверить условия в коде с помощью макрорекордера. Если вы пишете код VBA вручную, вы можете использовать операторы IF Then Else для анализа условия и запуска кода, если true (или другой код, если false).

Расширение файлов Excel, которые содержат макросы

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

До Excel 2007 был достаточен один формат файла — .xls. Но с 2007 года .xlsx был представлен как стандартное расширение файла. Файлы, сохраненные как .xlsx, не могут содержать в себе макрос. Поэтому, если у вас есть файл с расширением .xlsx, и вы записываете / записываете макрос и сохраняете его, он будет предупреждать вас о сохранении его в формате с поддержкой макросов и покажет вам следующее диалоговое окно:

Сохранение файла с поддержкой макросов

Если вы выберете «Нет», Excel сохранить файл в формате с поддержкой макросов. Но если вы нажмете «Да», Excel автоматически удалит весь код из вашей книги и сохранит файл как книгу в формате .xlsx. Поэтому, если в вашей книге есть макрос, вам нужно сохранить его в формате .xlsm, чтобы сохранить этот макрос.

Как добавить макрос на панель быстрого доступа excel

20.11.2007 17:06 | | |

После того, как вы создали макрос, вы можете добавить его на панель быстрого доступа (newi). По завершении процесса создания макроса его имя появляется в списке доступных команд в окне Настройка панели быстрого доступа в разделе Настройка диалогового окна Параметры Excel. При наведении курсора на кнопку макроса, помещенную на панель быстрого доступа, отображается всплывающая подсказка с информацией о макросе: имя рабочей книги имя макроса.

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

Нажмите стрелку кнопки Настройка панели быстрого доступа и выберите Другие команды

Нажмите стрелку списка Выбрать команды из, а затем выберите Макросы

Нажмите стрелку списка Настройка панели быстрого доступа и выберите Для всех документов (по умолчанию)).

В левой колонке выберите макрос, который вы хотите добавить на панель быстрого доступа.

Как добавить макрос на панель быстрого доступа в Office

00_lead_image_macro_on_qat

Макросы в Word и Excel позволяют сэкономить время на предсказуемых, повторяющихся задачах. Вы можете записать серию действий в макрос, а затем просто нажать кнопку, чтобы запустить макрос и выполнить задачу.

После того, как вы записали свой макрос (см. Нашу статью по ссылке выше), вы можете добавить кнопку на панель быстрого доступа, чтобы вы могли быстро запустить макрос. Для этого нажмите кнопку со стрелкой вниз в правой части панели быстрого доступа и выберите «Дополнительные команды» во всплывающем меню.

01_selecting_more_commands

Откроется диалоговое окно «Параметры Excel» с активным экраном «Настройка панели быстрого доступа». Выберите «Макросы» из выпадающего списка «Выбрать команды из».

02_selecting_macros

Выберите нужный макрос из списка под выпадающим списком «Выбрать команды из» и нажмите «Добавить».

03_clicking_add

Макрос добавляется в список «Настройка панели быстрого доступа».

04_macro_added_to_qat_list

Нажмите «ОК», чтобы принять изменение и закрыть диалоговое окно «Параметры Excel».

05_clicking_ok

Макросы могут быть записаны в Word и Excel. Мы показали, как добавить макрос на панель быстрого доступа в Excel 2016, но эта процедура также будет работать в Excel 2013 и Word 2013 и 2016.

ПРИМЕЧАНИЕ. Макросы — это, по сути, фрагменты компьютерного кода, которые потенциально опасны. Для получения дополнительной информации см. Нашу статью о том, почему файлы Microsoft Office могут быть опасными .

Нажмите ОК, чтобы вернуться к электронной таблице.

Наша вкладка «Макросы» появилась, как мы и надеялись. Тем не менее, он немного пуст в данный момент.

Чтобы дать ему некоторую функциональность, давайте разберем несколько основных макросов

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

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

Создание макроса времени и даты

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

Макросы Excel для разработчиков

Введите имя макроса dateandtime и затем нажмите Create .

Excel создать макрос

Excel откроет редактор Visual Basic. Добавьте следующий код:

Sub dateandtime() MsgBox Now End Sub 

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

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

макрос запуска Excel

Вы должны увидеть что-то вроде этого:

окно сообщения Excel

Наш макрос сообщения работает! Теперь давайте попробуем что-нибудь более сложное.

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

Еще раз откройте диалоговое окно «Макросы», введите имя заголовка и нажмите « Создать» .

заголовки клиентов Excel

Введите следующий код в разделе Sub customheaders () :

 Range("A1").Value = "Date" Range("B1").Value = "Title" Range("C1").Value = "Priority" Range("D1").Value = "Status" Range("E1").Value = "Finished?" 

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

Добавьте эту строку кода внизу:

 Range("A1:E1").Font.Bold = True 

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

Теперь пришло время вернуться в Excel и посмотреть, работает ли наш макрос как надо.

Excel, автозаголовок

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

Теперь еще один макрос.

Создание макроса связанной электронной таблицы

Сначала создайте новую таблицу и сохраните ее. Затем откройте документ, с которым мы работали ранее, и перейдите к « Разработчик» > « Макросы» . Введите название таблицы и нажмите « Создать» .

Введите следующий код ниже Sub connectedspreadsheet () :

 Workbooks.Open ("C:UsersbradjDesktopMake Use OfVBA Toolbarholiday availability.xlsx") 

Однако вам нужно поменять путь к только что созданной таблице. Чтобы выяснить это, перейдите к документу в проводнике, щелкните его правой кнопкой мыши и выберите « Свойства» .

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

Сохраните свою работу и вернитесь в Excel, чтобы проверить ее.

электронная таблица Excel

Это прекрасно работает. Когда я запускаю макрос, связанная электронная таблица открывается сразу. Теперь нам просто нужно добавить все эти макросы на нашу панель инструментов.

Заполнение панели инструментов

Откройте вкладку « Макросы », которую мы создали ранее, и щелкните правой кнопкой мыши на ленте. Выберите « Настроить ленту» .

Используйте команды «Выбрать команды» из выпадающего меню и выберите « Макросы» .

Excel выбрать команды из

Вы должны увидеть три макроса, которые мы сделали ранее. Выделите каждый из них и используйте кнопку « Добавить» , чтобы вставить его в новую группу на вкладке « Макросы ».

Excel добавить макрос

Выделите каждый макрос и нажмите « Переименовать», чтобы придать им более презентабельный ярлык, и добавьте пользовательский значок.

Excel переименовать макрос

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

Excel закончил панель инструментов

Сделайте панель инструментов, которая работает для вас!

Всем известно, что Excel является невероятно мощным программным обеспечением.

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

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

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

У вас есть совет по созданию макросов Excel? Вы ищете помощь в процессе создания панели инструментов? Присоединяйтесь к разговору в разделе комментариев ниже!

Изображение предоставлено: ARTIST через Shutterstock.com

Как написать и использовать собственную надстройку в Excel

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

  • при открытии такого файла будет каждый раз срабатывать защита от макросов
    и нужно будет всякий раз подтверждать исключение безопасности или отключить
    защиту полностью, что небезопасно;
  • если макрос нужен везде, то и копировать код его придется в каждую книгу;
  • сохранять файл нужно в формате с поддержкой макросов (xlsm) или в формате
    двоичной книги (xlsb).

Если макросов много, а используются они часто более рационально будет
создание собственной надстройки Excel — отдельного файла
особого формата (xla – Excel2003, xlam – Excel2010 и старше), содержащего
все макросы.

Плюсы такого подхода очевидны:

  • больше не будет срабатывать защита от макросов, потому
    что надстройки по определению входят в доверенные источники;
  • однократное подключение надстройки в Excel. Теперь её
    VBA процедуры и функции можно будет использовать в любом файле на
    компьютере. Сохранять ваши рабочие файлы в xlsm- и xlsb-форматы, также не
    требуется потому, что исходный текст будет храниться не в них, а в
    файле надстройки.
  • можно сделать отдельную вкладку на ленте Excel для запуска макросов надстройки.
  • Надстройку легко переносить с компьютера на компьютер — это отдельный файл.

Рассмотрим процесс создания своей собственной надстройки для Excel на примере Excel 2010.

1. Создать файл надстройки

Открываем Excel с пустой книгой и сохраняем ее в формате надстройки с
помощью команды Файл — Сохранить как, например,ExcelPlus), указав тип файла Надстройка Excel (Excel Add-in):

По умолчанию Excel хранит надстройки в папке C:Users<Учетная запись пользователя
>AppDataRoamingMicrosoftAddIns
, но можно указать и любую другую
папку.

2. Подключить созданную надстройку

Теперь созданную нами на прошлом шаге надстройку ExcelPlus надо
подключить к Excel. Для этого в меню Файл — Параметры — Надстройки, жмем на кнопку Перейти в нижней части окна:

Если вы скопировали файл надстройки в папку по умолчанию, то новая
надстройка ExcelPlus должна появиться в списке доступных
надстроек:

Либо в этом окне жмем Обзор и указываем
положение нашего файла надстройки.

Ставим флажок напротив названия настройки и жмем ОК.

3. Добавить макросы в надстройку

Теперь надстройка подключена к Excel, но она не может работать, так как в
ней отсутствуют макросы. Добавим макрос в надстройку. Для этого откроем
редактор VBA по Alt+F11 или кнопкой Visual Basic на
вкладке Разработчик:

В левом верхнем углу редактора должно быть окно Project

В этом окне отображаются все открытые книги и запущенные надстройки Excel,
в том числе и наша надстройка — VBAProject ( ExcelPlus.xlam) Выделите её мышью и добавьте в неё новый
модуль через меню Insert — Module.

В этом модуле будет хранится VBA-код макросов надстройки.

Добавим в добавленный пустой модуль код макроса, который производит поиск в
тексте кириллических символов:

После вставки кода нужно нажать на кнопку сохранения дискетку в левом
верхнем углу.

Такие макросы как FindCyr называют еще процедурами. Макросы в составе надстроек можно запустить также как
обычные макросы:

  • при помощи сочетания клавиш Alt+F8, а затем нажать кнопку Выполнить
    (макросы надстроек здесь не видны. Несмотря на это, мы можем ввести имя нашей процедуры в поле Имя макроса);
  • назначить сочетание клавиш для быстрого запуска макроса — кнопка Параметры в окне Макрос
  • создать кнопку для нашего макроса на панели быстрого доступа в левом верхнем углу окна.

Подробнее и с картинками о способах запуска макроса написано здесь.

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

4. Добавить функции в надстройку

Кроме макросов-процедур, существуют еще и макросы-функции или
пользовательская функция. Создадим в нашей надстройке еще один
модуль меню Insert — Module и вставим туда код функции,
которая находит сумму ячеек нужного цвета:

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

Функцию невозможно запустить как предыдущий макрос-процедуру через
диалоговое окно Макросы и кнопку Выполнить. Ее нужно использовать как стандартную функцию
листа (СУММ, ЕСЛИ, …), т.е. просто ввести в любую ячейку, указав в
качестве аргументов ячейку с цветом-образцом и диапазон суммирования:

Или ввести через стандартное диалоговое окно вставки функции (кнопка fx в строке формул),
выбрав категорию Определенные пользователем:

У созданных пользователем функций отсутствует описание функции в нижней
части окна. Чтобы его добавить, нужно:

  1. Открыть редактор VBA по Alt+F11.
  2. Выделить нашу надстройку в панели Project и нажмите клавишу F2, чтобы
    открыть окно Object Browser
  3. Выбрать в верхней части окна в выпадающем списке свой проект надстройки
    (в конце списка)
  4. Щелкнуть по появившейся функции правой кнопкой мыши и выберите команду Properties.
  5. Ввести описание функции в окно Description:
  6. Сохранить файл надстройки и перезапустите Excel.

После перезапуска у функции должно отобразиться описание:

5. Создать вкладку надстройки в интерфейсе Excel

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

Мы будем писать код вкладки с помощью бесплатной программы для редактирования XML

Ribbon XML Editor

  1. Закрыть все окна Excel.
  2. Запустить программу Ribbon XML Editor и открыть в ней файл надстройки Excel Plus.xlam.
  3. При помощи кнопки tabs в левом верхнем углу добавить
    заготовку кода для новой вкладки
  4. В кавычки по стрелке нужно вписать id — любые уникальные
    идентификаторы вкладки и группы, а в label — названия
    вкладки и группы кнопок на ней:
  5. При помощи кнопки button на панели слева добавляем
    заготовку кода для кнопки и дописываем к ней:
  6. Id – идентификатор кнопки;

    label — текст на кнопке;

    imageMso — условное название изображения на кнопке(иконка). Иконку можно выбрать из
    большого числа изображений, щелкнув по кнопке:

    — onAction
    — имя процедуры обратного вызова — специального короткого макроса, который
    будет запускать основной макрос FindCyr. Назвать эту
    процедуру можно, например, FindCyrStart.

  7. Проверить правильность сделанного с помощью кнопки с зеленой галочкой
    сверху на панели инструментов. Рядом с ней нажмите на кнопку с дискетой для
    сохранения изменений:
  8. Закрыть Ribbon XML Editor
  9. Открыть Excel, зайти в редактор VBA по Alt+F11 и добавить к нашему
    макросу процедуру вызова FindCyrStart, для запуска
    основного макросы поиска кириллицы.
  10. Сохранить изменения в редакторе VBA и в Excel проверить результат:


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

Яндекс.Метрика

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel как добавить картинку в ячейку excel
  • Excel как добавить к числу текст
  • Excel как добавить к дате месяц
  • Excel как добавить год к дате
  • Excel как добавить выноску на диаграмму

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии