2013-04-26 30 views
0

我在試圖編譯VB6 Outlook加載項組件後,在同一臺PC上將Office升級到Office 2013 Pro Plus時出現了令人生厭的問題。VB6編譯Outlook加載項 - 編譯錯誤:自動化類型在Visual Basic中不受支持

錯誤

Compile Error: Automation type not supported in Visual Basic

被拋出就行了:

Implements IDExtensibility2 

我將粘貼低於文件的完整代碼。

在另一臺PC上,我設法完成了所有設置,並將Office升級到2012年,並且它沒有編譯問題,但現在在同一臺PC上 - 我得到相同的錯誤。我在臨時安裝Office時遇到了很多問題,所以我無法準確地告訴你我在工作和不工作之間做了什麼,但是底線是,看起來應該不會超出我做什麼的可能性我正在努力去做(就像我做過的那樣!),我只需要一些指導,說明我可能需要做些什麼來恢復工作設置。有任何想法嗎??

Implements IDTExtensibility2 
Private gBaseClass As New clsOlkAddIn 

Private Sub IDTExtensibility2_OnAddInsUpdate(custom() As Variant) 
'To Be Declared for IDTExtensibility2 
End Sub 
Private Sub IDTExtensibility2_OnBeginShutdown(custom() As Variant) 
'To Be Declared for IDTExtensibility2 
End Sub 
Private Sub IDTExtensibility2_OnConnection(ByVal Application As Object, _ 
ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _ 
ByVal AddInInst As Object, custom() As Variant) 

gBaseClass.InitHandler Application, AddInInst.ProgId 

End Sub 

Private Sub IDTExtensibility2_OnDisconnection(ByVal RemoveMode _ 
As AddInDesignerObjects.ext_DisconnectMode, custom() As Variant) 
Dim objCB As Office.CommandBar 
On Error Resume Next 
'If RemoveMode = ext_dm_UserClosed Then 
    Set objCB = golApp.ActiveExplorer.CommandBars("Addin") 
    objCB.FindControl(Type:=msoControlPopup, Tag:="Menu").Delete 
    objCB.FindControl(Type:=msoControlButton, Tag:="AddEmailsButton").Delete 
    objCB.FindControl(Type:=msoControlButton, Tag:="SyncContactsButton").Delete 
    objCB.FindControl(Type:=msoControlButton, Tag:="SyncTasksButton").Delete 
    objCB.FindControl(Type:=msoControlButton, Tag:="SyncCalendarButton").Delete 

    objCB.Delete 
'End If 
gBaseClass.UnInitHandler 
    Set gBaseClass = Nothing 
End Sub 
Private Sub IDTExtensibility2_OnStartupComplete(custom() As Variant) 
'To Be Declared for IDTExtensibility2 
End Sub 
+0

道歉 - 在與此糾纏之後,我通過重新閱讀前一篇文章的答案而發現了答案。 – Mayb2Moro 2013-04-26 21:27:52

+0

安裝VB6 service pack 6和最新的更新彙總解決了這個問題 - 正如在這個問題的答案中的鏈接中所建議的:http://stackoverflow.com/questions/15118125/vb6-outlook-add-in-works -in-outlook-2013-but-only-if-full-office-is-installed。 – Mayb2Moro 2013-04-26 21:28:40

回答

0

正如你在你的答案已確認(在評論),以確保您已升級到最新的服務包永遠是最好的選擇,除非你知道你使那在刪除或更改了功能依賴以後的服務包。

0

這個錯誤的另一個原因,正如我今天發現的那樣,在函數上有一個可選參數並給它一個默認值,例如:

公共函數foo(MyString中作爲字符串,可選MyVariant作爲變種= NULL)

此更改爲:

公共函數foo(MyString中作爲字符串,可選MyVariant的變體)

解決它,我沒有像上面那樣簡單地看到它(因此,爲什麼我在這裏),我確實將可選參數更改爲字符串,事實上,即使使用變量參數, Null以外的任何其他默認值都可以工作。這是導致錯誤的默認空值。