與主題一樣,我編寫了一個C#類,稱爲Test,然後將其編譯爲DLL並將其作爲COM自動化服務器公開給Excel。現在,您可以直接在Excel公式中調用該類的方法,也可以通過VBA函數自行調用它們。在第二種情況下會發生什麼是相對透明的(您編寫代碼!),而在第一種情況下,我假設一個Test實例被透明地實例化然後使用(它必須由於暴露的方法不是,而且 - 從我讀過的內容 - 不能是靜態的),但確切的時間和方式不清楚。因此,我的問題是:在此設置中調用的自動化服務器的精確生命週期是什麼以及在哪裏記錄?從COM調用Excel自動化服務器的生命週期
一個附屬問題是,是否有一種方法可以使公式和直接調用通過VBA使用一個單獨的實例Test?我想我已經知道如何讓所有VBA過程使用單個Test實例,但即使如此,在公式中直接調用Test方法時也會創建第二個過程。
最後,如果Test類擁有類級別的資源(即靜態資源),何時以及如何處理它們?同樣,這引發了測試類是由.NET/COM Interop創建和銷燬的確切時間的問題。
精度:該服務是一個DLL,而不是應用程序,並且Excel應該是唯一使用它的東西,儘管可能有多個電子表格副本打開。這是Excel 2007中