使用Late Binding订阅事件

时间:2012-09-06 17:54:42

标签: excel vba outlook

我可以在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

1 个答案:

答案 0 :(得分:1)

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

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

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

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