一、什么是Office功能區
從2007版本開始,Office引入了功能區,各種工具或功能被塞入頁面上方的條形區域,比之前菜單欄更加易於使用。
從2007版本開始,文檔使用了標准化的XML語言,同時,功能區也支持自定義,自定義功能區也是標准化的XML語言。推薦使用軟件OfficeRibbonXEditor進行自定義。
PS:感謝Github,感謝作者fernandreu。
二、示例:自定義功能區(RibbonX)
(1)利用OfficeRibbonXEditor建立一個自定義功能區,功能區中包括一個組,組內包括三個按鈕,每個按鈕綁定一個宏。
在軟件中依次插入Office 2010+CustomUI(如Office為2007,需選擇2007版本,但容易出現中文亂碼的情況),插入XML-Excel示例。
然后點擊生成回調,將回調過程代碼插入原本的宏工作簿中。
(2)此外,值得注意的是,如果有很多button,則可以將CustomUI代碼中每一個button增加Tag屬性,同時對onAction屬性使用相同內容,這個內容即是回調過程的過程名,這樣一來,回調過程就簡化成了統一的一段代碼(見下),過程代碼簡化為調用名為botton.Tag的過程。
Sub call_subs(button As IRibbonControl)
Application.Run button.Tag
End Sub
PS:這個方法是之前在網上看到某位大神的寫法,但忘記出處了,實屬抱歉。
(3)imageMso屬性也是個大坑,以后找機會單獨出一篇來寫。
(4)其他有關CustomUI的用法(語法等),可以參考微軟官方技術文檔Word, Excel, and PowerPoint Standards Support。另外,CustomUI這玩意往深了挖可能就跟VSTO有點關系了,本人還沒開始入坑。