0

在将同一台 PC 上的 Office 升级到 Office 2013 Pro Plus 之后,我在尝试编译 VB6 Outlook 插件组件时遇到了一个令人恼火的问题。

错误

编译错误: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
4

3 回答 3

1

正如我今天发现的那样,这个错误的另一个原因是函数上有一个可选参数并给它一个默认值,例如

公共函数 Foo(MyString 作为字符串,可选 MyVariant 作为变体 = null)

将其更改为:

公共函数 Foo(MyString 作为字符串,可选 MyVariant 作为变体)

解决了它,但我并没有像上面看起来那样简单(因此,为什么我在这里闲逛),我确实首先将可选参数更改为字符串,事实上,即使使用变体参数也是如此,具有除 Null 以外的任何默认值都有效。导致错误的是 Null 的默认值。

于 2014-03-27T13:50:10.030 回答
0

正如您在回答(在评论中)中确认的那样,确保您已升级到最新的服务包始终是最佳选择,除非您知道您依赖于在以后的服务包中删除或更改的功能。

于 2013-04-28T04:21:39.867 回答
0

安装“Visual Basic 6.0 Service Pack 6 运行时扩展文件的累积更新汇总”(https://support.microsoft.com/en-us/help/957924/description-of-the-cumulative-update-rollup-for -the-visual-basic-6-0-s)在我的实例中解决了这个错误。

于 2020-11-16T06:53:10.547 回答