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

Обновлено: 07.07.2024

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

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

Как выполнить макрос VBA в Excel

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

Макросы.

  1. Выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы».
  2. В появившемся окне «Макрос» из списка всех в первую очередь доступных макросов для данной рабочей книги Excel выберите любой понравившийся вам и нажмите на кнопку «Выполнить».

Программа макроса выполнить свои функции.

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

Полезный совет! Если вы хотите отредактировать макрос тогда выберите его в списке выше описанного инструмента и нажмите на кнопку «Войти», а не используйте кнопку «Изменить». С помощью кнопки войти вы всегда сможете перейти к исходному коду выбранного макроса. Автоматически откроется редактор Visual Basic именно в том месте где написан код данного макроса. Кнопка «Изменить» к сожалению, не для всех макросов работает одинаково.

Внимание! Макросы, созданные в надстройках Excel, могут быть по умолчанию не доступны в списке диалогового окна «Макрос» в целях политики безопасности. Ведь имена макросов в надстройках Excel обычно скрыты от сторонних пользователей. Но если ввести правильно соответственное значение в поле «Имя макроса:» то все кнопки в диалоговом окне будут активными. А значит готовы к работе с данным макросом из надстройки и пользователь является автором надстройки или доверительным лицом.

Запуск макроса с помощью горячих клавиш

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

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

  1. Снова выберите инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы».
  2. В появившемся диалоговом окне «Макрос» выберите желаемую макропрограмму из списка и нажмите на кнопку «Параметры».
  3. В появившемся диалоговом окне «Параметры макроса» в поле ввода «Сочетание клавиш: CTRL+» введите маленькую или большую латинскую букву. И нажмите на кнопку ОК.

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

Обратите внимание! В диалоговом окне «Параметры макроса» доступно поле для ввода его описания. Данное описание будет доступно внизу при выборе макроса из списка. Рекомендуем всегда подписывать свои макросы. Такой пользовательский тон этики работы с Excel будет высоко оценен, когда список пополниться десятками макросов.

Полезный совет! Старайтесь не использовать популярные комбинации горячих клавиш для работы с Excel: CTRL+S; CTRL+A; CTRL+T; CTRL+C; CTRL+V; CTRL+SHIFT+L и т.п. Ведь тогда их предназначение будет изменено. В окне «Параметры макроса» так же присутствует возможность использовать в комбинациях клавиш клавишу SHIFT. Как только вы придадите фокус клавиатуры для поля ввода «Сочетание клавиш: CTRL+» и попытаетесь ввести большую букву для комбинации, естественно с использованием клавиши SHIFT на клавиатуре, сразу название поля ввода поменяется на «Сочетание клавиш: CTRL+ SHIFT+».

SHIFT.

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

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

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

Чтобы запустить макрос с помощью панели быстрого доступа, требуется сделать так:

  1. Щелкните на самую последнюю кнопку на панели быстрого доступа (стрелка вниз), чтобы получить доступ к меню «Настроить панель», в котором необходимо выбрать опцию «Другие команды». В результате чего откроется окно «Параметры Excel», к которому можно было получить доступ и другим путем: «ФАЙЛ»-«Параметры»-«Панель быстрого доступа». Или щелкнув правой кнопкой мышки по любой панели Excel на любой закладке и выбрать опцию «Настройка панели быстрого доступа».
  2. В левом выпадающем списке «Выбрать команду из:» выберите опцию «Макросы».
  3. В левом списке элементов ниже выберите необходимый макрос и нажмите на кнопку «Добавить». В результате чего в правом списке элементов появиться кнопка для нового инструмента быстрого запуска вашего макроса. Справа от правого списка элементов можно использовать стрелки для настройки положения и порядка расположения кнопок инструментов на панели быстрого доступа. И нажмите ОК.

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

Полезный совет! Чтобы изменить внешний вид кнопки для макроса в окне «Параметры Excel»-«Панель быстрого доступа», из правого списка элементов «Настройка панели быстрого доступа» следует выделить макрос и нажать на кнопку «Изменить». Будет предложена небольшая галерея иконок для нового оформления внешнего вида кнопки запуска макроса с панели инструментов.

Изменить.

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

Запуск макроса с помощью кнопки на рабочем листе Excel

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

  1. Выберите инструмент: «РАЗРАБОТЧИК»-«Элементы управления»-«Вставить»-«Кнопка (элемент управления формы».
  2. Выделите курсором мышки место где и как будет вставлена кнопка для запуска макроса.
  3. В появившемся окне «Назначить макрос объекту» из списка доступным макросов выберите желаемый и нажмите на кнопку ОК.
  4. Теперь нужно назначить кнопку макросу. Правой кнопкой мышки щелкните по созданной кнопке и в появившемся контекстном меню выберите опцию «Изменить текст». Удалите старый и введите новый текст «Мой макрос».

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

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

Сочетание клавиш для запуска макроса

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

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

Назначение комбинации клавиш для запуска программы в MS Word

Чтобы назначить горячие клавиши для вызова макроса (VBA-программы) в Word нужно:

  1. В меню Файл выбрать команду Параметры. В открывшемся окне Параметры Word перейти в раздел Настроить ленту и кликнуть по кнопке Настройка, которая находится в нижней части окна.
  2. В результате перед вами появится окно Настройка клавиатуры. В списке Категория этого окна нужно выбрать значение Макросы. А после этого, в списке Макросы отметить имя нужного макроса (или программы).
  3. Установить курсор в поле Новое сочетание клавиш и нажать комбинацию клавиш, которую вы хотите назначить данному макросу (или программе). Эта комбинация отобразится в поле Новое сочетание клавиш и всё что вам останется – это нажать на кнопку Назначить. Комбинация перенесётся в поле Текущие сочетания.
  4. Окно Настройка клавиатуры можно закрывать, но чтобы изменения вступили в силу нужно обязательно нажать ОК в окне Параметры Word.

Сочетание клавиш для запуска макроса в Word

Рисунок 1. Параметры Word

Сочетание клавиш для запуска макроса в Word

Рисунок 2. Настройка клавиатуры

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

Назначение комбинации клавиш для запуска программы в MS Excel

Чтобы назначить горячие клавиши для вызова макроса (VBA-программы) в Excel нужно:

  1. Перейти на вкладку Вид на Ленте приложения.
  2. В группе Макросы выбрать команду Макросы, или нажать комбинацию клавиш <Alt+F8>.
  3. В появившемся диалоговом окне Макрос выбрать имя нужного вам макроса и нажать на кнопку Параметры.
  4. Теперь, в окне Параметры макроса, вы можете назначить комбинацию клавиш для выполнения макроса.

Сочетание клавиш для запуска макроса в Excel

Рисунок 3. Сочетание клавиш для запуска макроса в Excel

Сочетание клавиш для запуска макроса в Excel

Рисунок 4. Окно Макрос в Excel

Сочетание клавиш для запуска макроса в Excel

Рисунок 5. Параметры макроса в Excel

Если вы хотите назначить комбинацию клавиш с применением кнопки Shift, то нужно установить курсор в поле Сочетание клавиш и удерживая зажатой клавишу Shift нажать нужную вам клавишу на клавиатуре. Теперь для вызова макроса будет использоваться комбинация клавиш вида <Ctrl+Shift+назначенная вами клавиша>.

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

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

Нажмите Alt+F8. В диалоговом окне "Макрос" нужно определить место нахождения макроса, выбрать имя макроса, для которого необходимо назначить сочетание клавиш и нажать кнопку "Параметры. ". После этого, в диалоговом окне "Параметры макроса" можно задать сочетание клавиш для запуска выбранного макроса.

1.JPG

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

Откройте редктор VBA (клавиши левый ALT + F11)
В левой части нажмите правой кнопкой по модулю, Export.

Excel_Export_module.jpg

В новой книге сделайте аналогично, но с клавишей Import.
Внутри файла сочетание будет выглядеть так:

Excel_module_View.jpg

2) Временно, через код макроса

Возможно, вы хотите включить сочетание клавиш на время выполнения каких-то операций, и
выключить егопри дальнейшей работе. Следующая строка кода временно присваивает процедуре MoveDown вызов сочетанием клавиш Ctrl + m:

3) Постоянно, через код макроса:

Чтобы окончательно изменить клавишу быстрого доступа с помощью кода, используйте строку:


Все доступные спецсимволы и спец. клавишы вроде Ctrl, Shift . для сочетаний вы можете посмотреть здесь: Application.OnKey Method (Excel)

Для MS Word

1) Во время записи макроса

Для Word 2003. Меню "Сервис", Макрос, Начать запись.
Выберите, где хранить макрос - текущем документе или в Normal.dot (тогда макрос будет доступен из-под любого документа)
Нажмите пиктограмму Клаиватуры.

word_hotkeys_keybrd.jpg

Поставьте курсор в поле "Новое сочетание клавиш" и нажмите на клавиатуре желаемое сочетание.
Выберите расположение, где хотите сохранить сочетание - в текущем документе, или доступное из-под всех документов.

word_Export_module2.jpg

Выполните действия в документе, которые хотите записать. В конце, завершите запись кнопкой "Стоп":

Для Word 2008 и новее, см. здесь: Настройка сочетаний клавиш - Word

2) Программно из-под кода макроса (временное, для текущего документа)

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

Элемент <Сочетание_клавиш>:

wdKey<Буква/цифра>, [wdKeyControl,] [wdKeyShift,] [wdKeyAlt]
где:
- wdKey<Буква/цифра> – нажатие клавиши, соответствующей указанной букве или цифре,
- wdKeyControl – нажатие клавиши Ctrl,
- wdKeyShift – нажатие клавиши Shift,
- wdKeyAlt – нажатие клавиши Alt.

Например:
wdKeyS, wdKeyControl – сочетание клавиш Ctrl+S
wdKeyQ, wdKeyControl, wdKeyAlt
– сочетание клавиш Ctrl+Alt+Q
wdKeyP, wdKeyControl, wdKeyShift, wdKeyAlt
– сочетание клавиш Ctrl+Shift+Alt+P

Элемент <Наименование_команды/макроса> можно взять из окна Настройка клавиатуры (для Word 2013: Файл – Параметры – Настроить ленту – Настройка…). Например:
FileSave – команда сохранения файла
InsertPicture – вставка рисунка из графического файла и т.д.

Для описания наименования макроса используется следующая конструкция:

Пример модуля, назначающего «горячие клавиши»:

Чтобы иметь возможность удалить назначенное сочетание клавиш необходимо использовать чуть другой синтаксис при назначении комбинации (с ключевым словом set):

Пример назначения и отмены:

ВАЖНОЕ ЗАМЕЧАНИЕ:
У этого способа есть неприятный момент, при переходе к другому документу, комбинация сбрасывается. Как это обойти читайте в пункте 3:

3) Программно из-под кода макроса (постоянное, для текущего документа)

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

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

Нижеуказанный код поместите в модуль ThisDocument . и перезапустите Word:

Примечание: Макрос, вызываемый через KeyBindings, должен иметь область видимости Public.

Доступные для назначения клавиши можно посмотреть по ссылке: WdKey Enumeration (Word)

Другие способы и замечания:

Стандартно, сочетания можно назначать не на все клавиши. А часть сочетаний уже задействована под служебные функции.
Однако, есть способ это обойти, хотя и небезопасный.
Я протестировал API-функцию RegisterHotkey, которая с этим замечательно справляется.
Один большой минус, чтобы "Словить" сочетание требуется создание сабклассинга оконной процедуры. А это непростая тема для VBA, так как я ещё не видел надёжного кода сабклассинга под MS Office, который бы не обрушил программу (крэш) при выполнении некоторых операций.
По понятным причинам код не выкладываю. Однако, вы можете попросить мой вариант в ЛС.

auto-teacher

Пользователь
Стандартно, сочетания можно назначать не на все клавиши. А часть сочетаний уже задействована под служебные функции.
Однако, есть способ это обойти, хотя и небезопасный.
Я протестировал API-функцию RegisterHotkey, которая с этим замечательно справляется.

Dragokas

Very kind Developer

auto-teacher

Пользователь

В связи с этим я должен напомнить еще одну проблему, которая мне попалась в Windows 8 и Word 2013. Она мне крови попортила, пока чудом не пришло решение. Суть такая: есть две кнопки Alt - левая и правая, но отдельно работает только одна левая.
Чтобы увидеть это, надо Вам проверить все на своем компе (Вы же недавно Word 2013 поставили?).
1. Назначьте для макроса TableInsertTable такое сочетание: Alt+t.
2. А для макроса PageSetupMargins назначьте: Ctrl+Alt+t.
Теперь:
если Вы нажмете Left_Alt+t - произойдет вставка таблицы.
если нажмете Left_Ctrl+Left_Alt+t - откроются параметры страницы.
а если нажмете Right_Alt+t, то смею предположить, что в Вашем Word'е правый Alt сработает как Ctrl+Alt, и вместо вставки таблицы, откроются параметры страницы. Так это или нет?

Панель быстрого доступа Excel

Иногда приходится многократно выполнять то или иное действие. Не всегда удобно при этом открывать вкладку на ленте и выбирать команду (особенно если приходится использовать команды с разных вкладок меню).

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

Как назначить горячие клавиши на команды

  1. Откройте выпадающий список панели быстрого доступа и выберите пункт Другие команды.

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

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

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

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

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

Запустить команду с панели можно двумя способами:

  1. Кликнуть по ней левой кнопкой мыши.
  2. Сочетанием клавиш Alt + Номер ее на панели (1, 2, 3 и т.д.).

Почему горячие клавиши не назначены по умолчанию

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

Читайте также: