Vin*_*ent 3 c# excel ms-office office-interop
我正在开发一个excel插件(办公室2013).
我想覆盖Excel键盘快捷方式.
例如,ctrl+ e现在必须将文本居中在单元格中.
我从哪里开始?我在interop文档中找不到它.
小智 5
好吧,没有纯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);
}
Run Code Online (Sandbox Code Playgroud)
该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");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1869 次 |
| 最近记录: |