2010-11-27 34 views
1

我是一個非常新的Visual Studio(剛剛下載的版本2010 Professional),但我相信這是在Excel中執行Web服務的正確方法。從Excel 2007中調用Visual Studio Excel加載項

在Visual Studio中創建了一個名爲TestAPI的Excel 2007插件,該插件僅包含一個類ThisAddIn,2個默認的啓動和關閉過程以及我自己編寫的2個函數,如f1和f2。

當我啓動Excel 2007並檢查Excel選項時,我可以看到它作爲COM添加進來,但是如何在VBA中看到這兩個函數?任何對ThisAddIn或TestAPI或f1或f2的引用都會失敗,但如果我將某些東西放入StartUp函數中,則每當我啓動Excel時都會自動執行此操作,而這確實令我感到很煩惱。看起來COM加​​載項在Excel級別打開/關閉,但似乎無法在引用(我可以根據Excel工作表根據需要選中或取消選中它)列表上的任意位置找到TestAPI。

我可能缺少一個(或多個)點。

回答

2

Paul Stubbs提供了一些關於在his blog上從VBA調用VSTO UDF的信息。

或者,您可以嘗試爲Excel創建一個更加香草的COM加載項,如Eric Carter所述。

我個人偏好創建用戶定義的功能是使用ExcelDna

+0

謝謝,提出基於上面的一些進步(關鍵位是添加ComVisible),所以我現在可以看到並使用這些函數。仍然不知道如何公開用戶定義的類型(類或結構)。試圖鏡像函數的東西不適用於vba(甚至不會編譯),因爲一切似乎都是在運行時通過對象完成的。 – Rob 2010-12-01 10:53:22

+0

以上是非常有用的鏈接。我發現,爲了我的目的,我最好創建一個類庫dll並在需要時添加爲參考。 – Rob 2010-12-01 17:21:56

0

您是否宣佈F1和F2公開?在的ThisAddIn

Public Shared Function F1(x as Object) as Object 
    Return x*2 
End Function 

類(我不知道,如果在共享VSTO是必須的,我使用外接快遞,VSTO是這樣的痛)

相關問題