В регистраторе макросов всегда есть скрытый атрибут члена для назначенной горячей клавиши, и в IDE нет ничего, что могло бы изменить или иным образом манипулировать им. Вы можете экспортировать файл кода, отредактировать его (удалить скрытую строку Attribute
) и повторно импортировать его в свой проект VBA ... но это довольно неприятно.
Получить Rubberduck (бесплатный проект надстройки VBIDE с открытым исходным кодом, которым я управляю), и тогда вы можете сделать это:
'@ExcelHotkey("y")
Public Sub MyAwesomeMacro()
'do stuff...
End Sub
Эта аннотация / комментарий затем может быть превращена в тот же скрытый элементАтрибут Excel используется при записи макросов и назначении горячей клавиши (с помощью статического анализа кода; подробности см. в этом посте ).
Строчная буква "y" - это то, что делает горячую клавишу Ctrl +у. Если вы хотите, чтобы горячая клавиша была Ctrl + Shift + y, просто сделайте ее заглавной "Y":
'@ExcelHotkey("Y")
Public Sub MyAwesomeMacro()
'do stuff...
End Sub
Преимущества этого подхода многочисленны:
- Нет неясногоатрибуты скрытого члена для манипуляции.
- Нет необходимости экспортировать / редактировать / импортировать что-либо.
- Скрытые атрибуты скрытого члена обнаруживаются / документируются.
- Нет необходимости в
Application.OnKey
hack. - Вы получаете результат проверки всякий раз, когда атрибуты и аннотации расходятся, и вы можете синхронизировать значения одним щелчком мыши.
Если все, что вам нужно, это удалить атрибут горячей клавишизатем просто запустите проверку кода;Rubberduck сообщит вам о наличии скрытого атрибута без соответствующего комментария к аннотации, а затем вы сможете решить, следует ли удалить атрибут или добавить соответствующий комментарий к аннотации.
Примечание: функция будет работатьидеально подходит для нужд OP ( удаление скрытого атрибута), но ошибка регрессии была подана , так как добавление скрытого атрибута нарушено в v2.4.1.5170.