2009-06-29 60 views
1

在Excel 2007之前,我們使用vba捕獲Excel中的打開文件事件,以便我們可以顯示我們自己的打開對話框,該對話框知道如何查找客戶端文件夾。在Excel 2007中這不再有效,現在有沒有人有任何想法>Excel 2007 - 捕獲打開命令欄按鈕事件

之前的基本前提是創建一個帶有命令欄按鈕和相關事件的類,然後在應用程序打開時設置該commandBarButton,會抓住它,但現在沒有。現在有另一種方法嗎?

公共WITHEVENTS cmdBold作爲Office.CommandBarButton 私人小組cmdBold_Click(BYVAL Ctrl鍵Office.CommandBarButton,_ CancelDefault由於布爾) 「插入代碼要在針對這一事件上運行。 結束小組

http://msdn.microsoft.com/en-us/library/aa189726(office.10).aspx

回答

1

沒有真正達到與2007年加快了,但是我認爲,改變Ribbon UI的已經改變了您的應用程序的工作。

從「開發人員注意事項」的this lengthy MSDN article部分:

原有解決方案和定製兼容性

許多公司依靠定製的微軟 Office系統上 應用程序和解決方案, 將Microsoft Office與 第三方應用程序集成。這些解決方案中的很多都通過命令欄對象模型修改Office UI 。 在2007 Office版本中,此代碼 繼續工作 - 在大多數情況下不需要修改即可使用 。

在Office 2003到工具欄進行的變更通常出現在 功能區(見圖18)的加載項選項卡上的2007 釋放。出現的 定製類型取決於 加載項的原始設計。例如,對於 示例,如果自定義將 項添加到上一個菜單結構 ,則Office Fluent UI會創建菜單 命令組。如果自定義代碼 將項目添加到內置工具欄 ,則Office Fluent UI會創建一個工具欄 包含這些 控件的命令組。通過加載項 添加的工具欄顯示在自定義工具欄組中。

鼠標點擊和該 加載項選項卡上的其他事件引發了同樣的結果 如前面的菜單和工具欄 接口。在 中單擊工具欄按鈕時執行 的外接程序代碼在 用戶單擊2007版本的 加載項選項卡的工具欄組中的對應 按鈕時,仍會執行上一個UI。

要求隱藏菜單和工具欄或 以刪除控件將被忽略。如果 的加載項嘗試重新調整 內置的功能,通過改變菜單項或工具欄 按鈕,如保存或打印 預覽,Office應用程序副本 控制的加載項選項卡和 行爲 在那裏更改它,保留功能區上的原始 控件或未更改Office按鈕菜單中的微軟 控件。

雖然可以刪除或 禁用內置控件 編程在2007年發佈, 加載項刪除或重新排序菜單 項目,在以前的Microsoft Office 版本的工具欄項目沒有 效果當他們被裝載時。

因此,您可能會發現在「加載項」選項卡中有一個額外的「打開」控件。

似乎重新使用內置控件只能使用XML。從早期在同一文件中:

機會擴展

重新爲內置控件。您可以通過編寫一行將定製代碼連接到內置控件的每個實例的XML來接管UI中任何位置的任何內置控件的功能。您可以修改該控件以執行自定義代碼,並可選擇繼續使用內置功能。

最後,this even longer MSDN article解釋XML定製是如何工作的

+0

聽起來不錯,會檢查嘗試了這一點,TKS! – Codezy 2009-07-01 16:46:25