gpt4 book ai didi

c# - 通过 Office 加载项更改键盘快捷方式?

转载 作者:行者123 更新时间:2023-11-30 14:56:28 24 4
gpt4 key购买 nike

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

我想覆盖 Excel 键盘快捷键。

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

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

最佳答案

好吧,没有纯 C# 方法来为命令分配快捷方式,但我想我刚刚找到了解决方法。

在 Excel 中,您可以为宏分配快捷方式。这显然意味着您的工作簿中需要有一个宏。如果您正在使用互操作,您可以以编程方式创建宏并为其分配快捷方式。

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

你的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 字符串是一个纯 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");

关于c# - 通过 Office 加载项更改键盘快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22855021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com