C# 是否通过office加载项更改键盘快捷键?

C# 是否通过office加载项更改键盘快捷键?,c#,excel,ms-office,office-interop,C#,Excel,Ms Office,Office Interop,我正在开发excel加载项(office 2013) 我想覆盖Excel键盘快捷键 例如,ctrl+e现在必须将单元格中的文本居中 我从哪里开始?我在interop文档中找不到它。好吧,没有纯C的方法来为命令指定快捷方式,但我想我刚刚找到了一个解决方法 在Excel中,可以为宏指定快捷方式。这显然意味着您的工作簿中需要有一个宏。如果使用interop,则可以通过编程方式创建宏并为其指定快捷方式。 创建一个addModule()函数,该函数以编程方式创建标准编码模块并向其写入代码。然后使用Appl

我正在开发excel加载项(office 2013)

我想覆盖Excel键盘快捷键

例如,ctrl+e现在必须将单元格中的文本居中

我从哪里开始?我在interop文档中找不到它。

好吧,没有纯C的方法来为命令指定快捷方式,但我想我刚刚找到了一个解决方法

在Excel中,可以为宏指定快捷方式。这显然意味着您的工作簿中需要有一个宏。如果使用interop,则可以通过编程方式创建宏并为其指定快捷方式。

创建一个
addModule()
函数,该函数以编程方式创建标准编码模块并向其写入代码。然后使用
Application.OnKey()
为该宏指定快捷方式

您的
addModule()

code
字符串是一个纯VBA宏,它将
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");
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");