7

我在网络共享上有一个 .dotm 模板文件。有引用 Word、Office 和 Outlook 对象库的宏。我们使用两个不同的平台,Windows XP 和 Windows 7,以及 Microsoft Office 2007 和 Office 2010。当用户打开模板文件时,Word 和 Office 的引用会自动相应地调整(也就是说,它们被设置为 Microsoft Word 12 对象库或 Microsoft Word 14 对象库),并且宏运行没有问题。

Microsoft Outlook 对象库从版本 12 正确切换到 14。它无法从版本 14 正确切换到 12。在这种情况下,它会给出找不到库的错误。这是一个错误吗?有解决方法吗?我忽略了什么?

4

1 回答 1

3

对于每个循环,

看来您的问题已基本得到解答。为了清楚起见,我将仅添加一些信息,并为这个问题提供答案。微软论坛上的一位用户 Ossiemac 指出 LateBinding 是一种可行的方法。正如 Siddarth 所暗示的,这意味着您不必担心引用。

Ossiemac 提供了一些在发送电子邮件时使用 LateBinding 的示例代码,我已将其重新格式化并放置在此处:

Private Sub btnLateBindMethod_Click()
    ' Variables used for LateBinding
    Dim objOutlook As Object    'Outlook.Application  
    Dim objEmail As Object      'Outlook.MailItem     
    Dim objNameSpace As Object  'Outlook.NameSpace    
    Const OutLookMailItem As Long = 0    'For Late Binding
    Const OutLookFolderInbox As Long = 6 'For Late Binding
    Const OutLookFormatHTML As Long = 2  'For Late Binding
    Dim strSubject As String
    Dim strAddress As String


On Error Resume Next
Set objOutlook = GetObject(, "Outlook.Application")
On Error GoTo 0     

    If objOutlook Is Nothing Then
        Set objOutlook = CreateObject("Outlook.Application")
        Set objNameSpace = objOutlook.GetNamespace("MAPI")
        objNameSpace.GetDefaultFolder(OutLookFolderInbox).Display
    End If

Set objEmail = objOutlook.CreateItem(OutLookMailItem)

strSubject = "Hello World"

    With objEmail

        '.To = strToAddress  'Commented to prevent accidental send

        .Subject = strSubject

        .BodyFormat = OutLookFormatHTML

        .Display

        'Full Name of window can change depending on Tools -> Options -> Mail Format
        'Changing this option for outgoing mail changes the window name.
        'However, AppActivate appears not to require entire name but needs up to end
        'of - Message which is included in heading following the Subject string
        'irrespective of the Mail Format option chosen.
        AppActivate (strSubject & " - Message")

    End With    
End Sub

Jimmy Pena 有一篇文章讨论EarlyBinding 和 LateBinding 的对比——

~乔尔

于 2012-07-27T22:05:02.087 回答