2
我正在開發一個excel加載項(office 2013)。通過加載項更改鍵盤快捷方式的辦公室?
我想覆蓋Excel鍵盤快捷鍵。
例如,CTRL +Ë必須現在中心細胞文本。
我從哪裏開始?我無法在互操作性文檔中找到它。
我正在開發一個excel加載項(office 2013)。通過加載項更改鍵盤快捷方式的辦公室?
我想覆蓋Excel鍵盤快捷鍵。
例如,CTRL +Ë必須現在中心細胞文本。
我從哪裏開始?我無法在互操作性文檔中找到它。
那麼,沒有純粹的C#方式來分配命令的快捷方式,但我想我已經找出了一種解決方法。
在Excel中,您可以爲宏指定快捷方式。這顯然意味着你需要在工作簿中有一個宏。如果您正在使用interop,則可以以編程方式創建宏併爲其分配快捷方式。
創建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");
http://www.codeproject.com/Articles/7294/Processing-Global-Mouse-and-Keyboard-Hooks-in-C –