4

当交换机加载时,我正在尝试从 Access VBA 打开 Outlook 应用程序。我打开了任务管理器,我可以看到一个 Outlook 实例出现大约 5 秒钟然后关闭,但我无法打开资源管理器窗口。我一直在尝试拼凑来自VBA 的代码:确定现有 Outlook 实例是否打开和其他来源,但它只是不起作用。有任何想法吗?

而且我想坚持使用后期绑定,因此如果有人使用 XP 打开,我不必担心对象库。

Function OpenEmail()

Dim olApp As Object ' Outlook.Application
Dim olFolderInbox As Object
Dim objExplorer As Object

On Error Resume Next

Set olApp = GetObject(, "Outlook.Application")

If olApp Is Nothing Then
    MsgBox "Outlook is not Open"
    Set olApp = CreateObject("Outlook.Application")
End If

Set objExplorer = CreateObject("Outlook.MAPIFolder")
Set objExplorer = olApp.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)

objExplorer.Activate

'Set olApp = Nothing

End Function
4

1 回答 1

5

Outlook 是唯一GetObjectCreateObject. 与其他 MS Office 应用程序不同,CreateObject它不会创建 Outlook 的多个实例。

也是olFolderInbox一个前景常数。您必须在 ACCESS 中定义它。

尝试这个

Const olFolderInbox As Long = 6

Sub Sample()
    Dim olApp As Object
    Dim objNS As Object
    Dim olFolder As Object

    Set olApp = CreateObject("Outlook.Application")
    Set objNS = olApp.GetNamespace("MAPI")
    Set olFolder = objNS.GetDefaultFolder(olFolderInbox)

    With olFolder
        '~~> Do what you want
    End With
End Sub
于 2013-10-04T15:38:00.977 回答