1:在vb.net側,做成相應的DLL工程
建立一個ClassLibrary工程,删除自動生成的Class1.vb檔案
然後自己新增加一個ComClass類型的項目
增加下面的函數
Public Function NewGuid() As String
Dim g As Guid = Guid.NewGuid()
Return g.ToString()
End Function
此時編譯生成的DLL檔案,在VBA的參照設定裡已經能看到了。
.net環境在預設情況下,自動注冊登陸了這個dll到GAC中。
檢視項目屬性,有兩個地方,一個是assemblyinfo中,COM參照被選中了。
還有一個地方是,編譯頁籤中,最下面COM互操作那一項也被選中了。
2:.net做成的COM元件如何部署
方法一:自己建立一個setup工程,然後把編譯生成的xxxx.DLL,xxxx.tlb兩個檔案添加到
setup工程,察看着兩個檔案的Register屬性。
xxxx.DLL對應vsdrpCOM值
xxxx.tlb對應vsdrfCOM值
這樣在客戶機上安裝後,vba也可以引用這個DLL檔案了。
方法二:在客戶機的.net類庫目錄中調用regasm指令注冊。可以用批處理來實作。
關于regasm的詳細用法可以參照
http://msdn.microsoft.com/zh-cn/library/tzat5yw6%28VS.80%29.aspx
例如:
C:/Windows/Microsoft.NET/Framework/v2.0.50727>regasm DLL絕對路徑 /tlb /codebase