更改办公室的加载项的键盘快捷方式?
我正在开发一个Excel加载项(Office 2013)。
我想覆盖一个Excel键盘快捷键。
例如, ctrl + e现在必须将文本居中在单元格中 。
我从哪说起呢? 我无法在互操作性文档中find它。
那么,没有纯粹的C#方法来分配一个命令的快捷方式,但我想我已经找出了一个解决方法。
在Excel中,您可以为macros指定一个快捷方式。 这显然意味着你需要在你的工作簿中有一个macros。 如果您正在使用interop,则可以以编程方式创build一个macros,并为其分配一个快捷方式。
创build一个addModule()
函数,以编程方式创build一个标准编码模块,并向其中写入代码。 然后使用Application.OnKey()
为该macros指定一个快捷方式。
你的addModule()
void addModule() { VBProject vbProj = Globals.ThisWorkbook.VBProject as VBProject; VBComponent vbComp = vbProj.VBComponents.Add(vbext_ComponentType.vbext_ct_StdModule); vbComp.CodeModule.DeleteLines(1, vbComp.CodeModule.CountOfLines); string code = "Public Sub CentreText() \n" + " activeCell.HorizontalAlignment = xlCenter \n" + "End Sub"; vbComp.CodeModule.AddFromString(code); }
code
string是一个纯粹的VBAmacros, activeCell
的文本横向activeCell
。
然后在可执行代码中的任何地方
addModule(); Worksheet ws = Globals.ThisWorkbook.ActiveSheet as Worksheet; Workbook wb = ws.Parent as Workbook; Microsoft.Office.Interop.Excel.Application app = wb.Parent as Microsoft.Office.Interop.Excel.Application; app.OnKey("^e", "CentreText");