2017-03-02 42 views
2

我剛剛開始從VBA遷移到C#。我有大約100個VBA宏進行轉換,其中大約25個要麼在自定義功能區條目中,要麼映射到諸如alt-P之類的按鍵。如何將VSTO C#代碼連接到功能區和/或鍵盤快捷鍵

唯一的reference我可以找到說我需要保留一些VBA代碼才能做到這一點。這樣的解決方案是完全不可接受的,我想完全免除VBA。我不禁想到這就像在特斯拉的特大號乾草中飼養一捆乾草來養活這匹馬。

有沒有更好的方法?

+0

您是否嘗試過使用 '快捷鍵提示'? http://stackoverflow.com/questions/12774412/how-to-set-keytip-on-a-ribbon – therea1wags

回答

0

按[Alt]鍵獲取keytip參考。按照以下我想引用「腳本幫助」功能區是「Y2」。

enter image description here

然後按[ALT] + 「Y」 + 「2」 以顯示該色帶控制按鍵提示控制的引用。根據以下我想參考「清潔數據」按鈕是「Y7」。

enter image description here

然後你可以使用的SendKeys按了按鍵提示引用。通過添加下面的代碼。

public void CallButtonFromAnotherRibbon() 
    { 
     try 
     { 
      SendKeys.Send("%"); 
      SendKeys.Send("Y"); 
      SendKeys.Send("2"); 
      SendKeys.Send("%"); 
      SendKeys.Send("Y"); 
      SendKeys.Send("7"); 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString(), "Unexpected Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
    } 

Microsoft Documentation for KeyTips

Microsoft Documentation for SendKeys