5

我可以在 myOlApp 使用早期绑定的“类模块”中使用以下内容订阅 Outlook 事件。

'**Class Module - clsOutlookHandler **
Public WithEvents myOlApp As Outlook.Application

Private Sub Class_Initialize()
    On Error Resume Next
    Set myOlApp = GetObject(, "Outlook.Application")
    If Err.Number = 429 Then
        Set myOlApp = CreateObject("Outlook.Application")
        Err.Clear
    End If
    On Error GoTo 0
End Sub

为此,我需要确保检查 Microsoft Outlook XX.X 对象库的引用。

是否可以使用后期绑定订阅 Outlook(或任何应用程序)事件?

我知道以下行不通。VBA中有解决方法吗?

Public WithEvents myOlApp As Object
4

1 回答 1

1

如果您包含对特定版本的 Microsoft Outlook(或与此相关的任何其他软件)的引用,并且最终用户拥有该软件的更高版本,则该引用仍然有效,前提是该软件的供应商已设置up 版本继承正确,并且没有进行重大更改。

但是,如果最终用户拥有该软件的早期版本(例如 Outlook),则该引用将不起作用,因此您需要设置对您打算支持的该软件的最早版本的引用。

这样,您可以完全避免后期绑定,并且仍然允许引用软件的多个版本。

您只需要注意不要将对所引用软件的旧版本的引用更新为较新版本,否则您可能会破坏使用旧版本软件的用户的工作簿。

于 2013-07-22T02:03:08.550 回答