2011-05-24 94 views
5

我工作在一个Outlook VBA应用程序,我需要访问我的收件箱,但我似乎遇到了一些麻烦。我正在使用GetDefaultFoldder(olFolderInbox)方法,但是,我有几个电子邮件地址设置,并没有出现在我的个人文件夹的收件箱中。访问Outlook默认文件夹

所以我的问题是,这个默认文件夹定义在哪里?我如何知道哪个收件箱是默认收件箱?我知道也有GetFolderFromID方法,如果我要使用这个,

如何找到文件夹ID以指向它?

这是我使用的代码。这是来自Timothy Chen Allen博客的教程,如Timothy's Blog所示。代码:

Sub find_unread() 
    On Error GoTo eh: 
    Dim ns As Outlook.NameSpace 
    Dim folder As MAPIFolder 
    Dim item As Object 
    Dim msg As MailItem 

    Set ns = Session.Application.GetNamespace("MAPI") 
    Set folder = ns.GetDefaultFolder(olFolderInbox) 

    For Each item In folder.Items 
     DoEvents 
     If (item.Class = olMail) And (item.UnRead) Then 
      Set msg = item 
      Debug.Print msg.SenderEmailAddress 
      msg.Display True 
     End If 
    Next 

    MsgBox "All messages in Inbox are read", vbInformation, "All Read" 
    Exit Sub 
eh: 
    MsgBox Err.Description, vbCritical, Err.Number 
End Sub 
+0

建议您发布您的实际代码 – 2011-05-24 02:16:48

回答

8

您可以使用Folders属性和字符串多个文件夹属性一起获取名称空间中的任何文件夹。一些实例中

收件箱(同GetDefaultFolder(olInbox))

ns.Folders("Personal Folders").Folders("Inbox") 

名为备份甲收件箱的子目录

ns.Folders("Personal Folders").Folders("Inbox").Folders("Backup") 

的OtherInbox在相同的水平的个人文件夹

ns.Folders("OtherInbox") 

GetDefaultFolder对于快速进入默认文件夹非常有用,但如果您需要某些东西除了默认值以外,只需使用NameSpace对象的Folders属性向下导航树即可。