为 Microsoft Excel 加载项分配键盘快捷键
Assign a keyboard shortcut to a Microsoft Excel Add-in
我的朋友与我共享了一个 .bas 文件,并告诉我在 vbEditor 中将其另存为 .xlam 以将其作为插件。
我已经在加载项中浏览并能够在我的工作簿中启用它。
有什么方法可以为加载项指定键盘快捷键吗?现在该加载项文件中只有一个 sub。
我尝试用
编写另一个子程序
Application.onKey "+^{C}" ,'Calculate'
但它不会触发要执行的子程序。
您没有为加载项指定快捷方式。相反,您将快捷方式分配给 宏 - 即标准模块中的 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 (Copy).
调出代码检查工具窗口,点击"refresh"按钮;在 "Rubberduck Opportunities" 下应该有一个关于注释和属性不同步的检查结果警告 - "Fix" 菜单中的 select "add member attribute",你就完成了 - 不需要export/edit/import 或处理任何晦涩的语法,如果您想更改热键,只需相应地编辑注释并重新同步注释和属性即可。
有关详细信息,请参阅 VB_Attribute annotations。
至于将 VBA 项目保存为加载项,只需将 VBA 项目的宿主工作簿保存为 .xlam 加载项文件,然后完全关闭 Excel 并重新打开它 - 从开发人员功能区选项卡的 "Excel Add-ins" 按钮加载您的 .xlam(如果您的 .xlam 文件不在列表中,请点击 "Browse" 找到它)。
我的朋友与我共享了一个 .bas 文件,并告诉我在 vbEditor 中将其另存为 .xlam 以将其作为插件。
我已经在加载项中浏览并能够在我的工作簿中启用它。
有什么方法可以为加载项指定键盘快捷键吗?现在该加载项文件中只有一个 sub。
我尝试用
编写另一个子程序Application.onKey "+^{C}" ,'Calculate'
但它不会触发要执行的子程序。
您没有为加载项指定快捷方式。相反,您将快捷方式分配给 宏 - 即标准模块中的 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 (Copy).
调出代码检查工具窗口,点击"refresh"按钮;在 "Rubberduck Opportunities" 下应该有一个关于注释和属性不同步的检查结果警告 - "Fix" 菜单中的 select "add member attribute",你就完成了 - 不需要export/edit/import 或处理任何晦涩的语法,如果您想更改热键,只需相应地编辑注释并重新同步注释和属性即可。
有关详细信息,请参阅 VB_Attribute annotations。
至于将 VBA 项目保存为加载项,只需将 VBA 项目的宿主工作簿保存为 .xlam 加载项文件,然后完全关闭 Excel 并重新打开它 - 从开发人员功能区选项卡的 "Excel Add-ins" 按钮加载您的 .xlam(如果您的 .xlam 文件不在列表中,请点击 "Browse" 找到它)。