通过代码在Outlook中发送/接收

时间:2012-09-06 14:21:43

标签: excel vba excel-vba outlook

如果我使用

在Excel VBA中创建Outlook 2010对象
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 = TruemyOlApp.Application.Visible = True不起作用

谢谢

1 个答案:

答案 0 :(得分: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有两种类型的Windows

  1. 文件夹资源管理器和
  2. 个别物品检查员。
  3. 如果要显示特定文件夹,可以为其启动资源管理器,然后使用.Activate.Display.另一种方法是使用MAPIFolder.Display方法。