从 Word VBA 脚本调用 CreateObject("Lotus.NotesSession") 时出现错误 429

Error 429 when calling CreateObject("Lotus.NotesSession") from Word VBA script

尝试在 Word 2013 中构建一个相当简单的 VBA 脚本来访问特定 Domino 数据库中的数据。如果我使用老式的 OLE 自动化(参见第二个片段),我的脚本工作正常,但如果使用我非常喜欢的早期绑定来使用特定的 Domino COM 对象,我的脚本就不能正常工作。

我确保 Word 2013 Notes 9.0.1 FP9 都正确安装在我的 Windows 7 (x64) 机器上。在 Word 的 VBA 编辑器中,我确保启用了对 "Lotus Domino Objects" (domobj.tlb) 的引用。

我知道创建 NotesSession 对象有多种版本,我想我对它们都进行了测试。这是 'early binding' 代码的一个示例:

Sub controlNotesCOM()
    Dim sn As NotesSession
    Dim db As NotesDatabase

    Set sn = CreateObject("Lotus.NotesSession")
    Call sn.Initialize

    MsgBox sn.COMMONUSERNAME, , "UserName"
    Set db = sn.GETDATABASE("", "mail\mymail.nsf")
    If (db.IsOpen()) Then
        MsgBox db.Size, , "Size"
    Else
        MsgBox "DB not open", , "ERROR"
    End If
End Sub

运行调试模式下的此代码段我在第 3 行收到运行时错误 429“Active X 组件无法创建对象”:

Set sn = CreateObject("Lotus.NotesSession")

我知道我以前有过类似的代码 运行,但那是早期版本的 Notes Word(不记得是哪个版本)。

以下使用 OLE 自动化的老式方法仍然有效,因此我认为这不是注册表问题:

Sub controlNotesOLE()
    Dim sn As Object
    Dim db As Object

    Set sn = CreateObject("Notes.NOTESSESSION")
    'Call sn.Initialize

    MsgBox sn.COMMONUSERNAME, , "UserName"
    Set db = sn.GETDATABASE("", "mail\lmueller.nsf")
    If (db.IsOpen()) Then
        MsgBox db.Size, , "Size"
    Else
        MsgBox "DB not open", , "ERROR"
    End If
End Sub

有没有人知道这里可能出了什么问题?这可能是 不能 工作的组合,无论出于何种原因?

天哪,我想我明白了: Runtime error 429 in VBA, but class is registered

Notes客户端(仍然)是32位的,我确实安装了64位版本的Office 2013。所以这是有道理的。

(提示:链接 post 有一些关于如何解决这个问题的技巧;不太适合我当前的项目,但可能适合其他人)