3

如果我在 Excel VBA 中使用

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

是否可以强制myOLAPP发送/接收。请问有人可以建议它是如何完成的吗?

我已经尝试了以下方法,但它对我不起作用。

 Set nsp = myOlApp.GetNamespace("MAPI")
 Set sycs = nsp.SyncObjects
 For i = 1 To sycs.Count
    Set syc = sycs.Item(i)

    syc.Start

 Next

另外,如何使 myOlApp 可见?myOlApp.Visible = True并且myOlApp.Application.Visible = True不起作用

谢谢

4

1 回答 1

2

您使用的是哪个 Outlook 版本?我用 Outlook 2010 对此进行了测试,它可以工作。

注意:我没有做任何错误处理。我相信你可以解决这个问题。

Public Sub Sample()
    Dim oLook As Object
    Dim nsp As Object, objSyncs As Object, objSync As Object
    Dim i As Long

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

    Set nsp = oLook.GetNamespace("MAPI")

    Set objSyncs = nsp.SyncObjects

    For i = 1 To objSyncs.Count
        Set objSync = objSyncs.Item(i)
        objSync.Start
    Next
End Sub

MS Outlook 有 2 种类型的窗口

  1. 文件夹资源管理器和
  2. 个别项目的检查员。

如果你想显示一个特定的文件夹,你可以为它启动资源管理器,然后使用.Activate.Display.另一种方法是使用MAPIFolder.Display方法。

于 2012-09-06T15:08:46.680 回答