Назначение сочетания клавиш для надстройки Microsoft Excel - PullRequest
1 голос
/ 20 сентября 2019

Мой друг поделился со мной файлом .bas и сказал, чтобы я сохранил его как .xlam в vbEditor, чтобы он был надстройкой.

Я просматривал надстройки и могу включить его в своей книге.

Можно ли назначить сочетание клавиш для надстройки?В этом файле надстройки есть только одна подпрограмма.

Я попытался написать другую подпрограмму с

Application.onKey "+^{C}" ,'Calculate'

, но она не запускает подпрограмму.

1 Ответ

1 голос
/ 20 сентября 2019

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

Таким образом, ваш файл кода может выглядеть следующим образом:

Option Explicit

Public Sub Calculate()
    '...code...
End Sub

Откройте его в блокноте.Я буду выглядеть так:

Attribute VB_Name = "Module1"
Option Explicit

Public Sub Calculate()
    '...code...
End Sub

Под Public Sub Calculate() вы хотите добавить атрибут, чтобы файл выглядел так:

Attribute VB_Name = "Module1"
Option Explicit

Public Sub Calculate()
Attribute Calculate.VB_ProcData.VB_Invoke_Func = "C\n14"
    '...code...
End Sub

Это именно то, как макрос Excelрекордер назначает макро-горячие клавиши: нет необходимости в каких-либо Application.OnKey обходных решениях.

Сохраните файл, импортируйте его в свой проект VBA: Ctrl + Shift + C теперь будет вызывать этот макрос.


Если вы используете Rubberduck , забудьте все вышеперечисленное и просто перейдите к модулю в редакторе VBA,найдите процедуру и аннотируйте ее так:

Option Explicit

'@ExcelHotkey("C")
Public Sub Calculate()
    '...code...
End Sub

Где "C" сделает горячую клавишу Ctrl + Shift + C ;Я бы настоятельно рекомендовал не использовать "c", чтобы избежать взлома Ctrl + C (Копировать).

Вывести проверки кода окно инструментовнажмите кнопку «Обновить»;в разделе «Возможности Rubberduck» должно быть предупреждение о том, что аннотации и атрибуты не синхронизированы - выберите «добавить атрибут участника» в меню «Исправить», и все готово - нет необходимости экспортировать / редактировать / импортировать или обрабатыватьс любым неясным синтаксисом, и если вы хотите изменить горячую клавишу, просто отредактируйте комментарий соответствующим образом и повторно синхронизируйте аннотации и атрибуты.

См. VB_Attribute аннотации для получения дополнительной информации.


Что касается сохранения вашего проекта VBA в качестве надстройки, просто сохраните рабочую книгу вашего проекта VBA в виде файла надстройки .xlam, затем закройте Excel полностью и заново откройте его - загрузите ваш .xlam от разработчикаКнопка «Надстройки Excel» на вкладке ленты (нажмите «Обзор», чтобы найти файл .xlam, если его нет в списке).

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