Страницы: 1
RSS
Горячая клавиша для макроса
 
Здравствуйте.

Имеется несколько маленьких макросов, которые раньше я держал в personal.xlsb . Устал от постоянных проблем с этим файлом (то при запуске он занят, то эксель его просто не видел) и решил перенести все макросы в надстройку. До переноса в окне макросов каждому была настроена горячая клавиша (сочетание) в параметрах макроса (скриншот). После переноса макросов в надстройку и удаления personal.xlsb сочетание клавиш так же вызывает макрос, но уже из надстройки.
Вопрос - как переназначить\удалить горячую клавишу вызова макроса из надстройки в Excel 2019?
Спасибо.
 
scp, здравствуйте!
Цитата
scp: как переназначить\удалить горячую клавишу вызова макроса из надстройки в Excel 2019?
если в коде была команда Application.OnKey, то сначала удалить её, а потом сделать, как тут, а именно добавить код в модуль книги надстройки, чтобы при открытии хоткей назначить, а при выходе снять
Код
Option Explicit
'===========================================================================================
Private Sub Workbook_Open()
On Error Resume Next
Application.OnKey "^+{Z}", "НазваниеПроцедуры"
End Sub
'===========================================================================================
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnKey "^+{Z}"
End Sub
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, спасибо за ответ.

Добавил код в модуль надстройки, но при нажатии клавиши, (либо сочетания) ничего не происходит. Что я сделал не так?
 
Цитата
scp: Добавил код в модуль надстройки
а надо
Цитата
Jack Famous: именно добавить код в модуль книги надстройки
Microsoft Excel Objects —> ЭтаКнига — и тогда сочетание назначится после перезапуска файла
Изменено: Jack Famous - 22.01.2020 12:41:56
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, моя невнимательность, прошу прощения, назначить клавишу получилось, спасибо :)

Можно ли освободить назначенные ранее (еще при работе через personal) хоткеи?
 
Цитата
scp написал:
освободить назначенные ранее
последовательно для каждого сочетания через Application.OnKey указываете сочетание клавиш, но не указываете процедуру для вызова. Сочетания будет удалено.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
scp: Можно ли освободить назначенные ранее (еще при работе через personal) хоткеи?
Цитата
Дмитрий(The_Prist) Щербаков: для каждого сочетания через Application.OnKey указываете сочетание клавиш, но не указываете процедуру
, как я вам, собственно, уже показал в коде из #2 — можно чуть допилить под ваш случай, добавив очистку перед назначением нового сочетания, а не только перед закрытием книги.
Для одного сочетания:
Код
Option Explicit
'===========================================================================================
Private Sub Workbook_Open()
On Error Resume Next
Application.OnKey "{LEFT}"
Application.OnKey "{LEFT}", "Карьер_Секция_корр"
End Sub
'===========================================================================================
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnKey "{LEFT}"
End Sub
Изменено: Jack Famous - 22.01.2020 13:18:46
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Вопрос решен. Большое спасибо.
Страницы: 1
Наверх