單文件介面與多文件介面
請注意,Microsoft Excel 2013(及更高版本)使用單文件介面(SDI),Excel 2010(及以下版本)使用多文件介面(MDI)。
這意味著對於 Excel 2013(SDI)
,單個 Excel 例項中的每個工作簿都包含自己的功能區 UI:
http://i.stack.imgur.com/VY2TA.jpg
相反,對於 Excel 2010,單個 Excel 例項中的每個工作簿都使用通用功能區 UI(MDI)
: http://i.stack.imgur.com/I4Dv1.jpg
如果要遷移與功能區互動的 VBA 程式碼(2010 < - > 2013),則會引發一些重要問題。
必須建立一個過程,以便在 Excel 2013 及更高版本的所有工作簿中更新處於相同狀態的功能區 UI 控制元件。
注意 :
- 所有 Excel 應用程式級視窗方法,事件和屬性都不受影響。 (
Application.ActiveWindow
,Application.Windows
……) - 在 Excel 2013 及更高版本(SDI)中,所有工作簿級視窗方法,事件和屬性現在都在頂級視窗中執行。可以使用
Application.Hwnd
檢索此頂級視窗的控制代碼
要獲取更多詳細資訊,請參閱此示例的來源: MSDN 。
這也會導致無模式使用者表單出現問題。請參閱此處獲取解決方案。