lov*_*ubs 5 outlook vba outlook-2007
我正在使用Outlook VBA应用程序,我需要访问我的收件箱,但我似乎遇到了一些麻烦.我正在使用该GetDefaultFoldder(olFolderInbox)方法,但是,我设置了多个电子邮件地址,但没有一个显示在我的个人文件夹的收件箱中.
所以我的问题是,这个默认文件夹在哪里定义?我如何知道哪个收件箱是默认收件箱?我知道还有这种GetFolderFromID方法,如果我使用它,
如何找到文件夹ID才能指向它?
这是我正在使用的代码.这是Timothy Chen Allen的博客上的Timothy的博客.代码:
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
Run Code Online (Sandbox Code Playgroud)
您可以使用Folders属性,并将多个Folders属性串在一起,以获取命名空间中的任何文件夹.一些例子
收件箱(与GetDefaultFolder(olInbox)相同)
ns.Folders("Personal Folders").Folders("Inbox")
Run Code Online (Sandbox Code Playgroud)
Inbox的子文件夹名为Backup
ns.Folders("Personal Folders").Folders("Inbox").Folders("Backup")
Run Code Online (Sandbox Code Playgroud)
与个人文件夹处于同一级别的OtherInbox
ns.Folders("OtherInbox")
Run Code Online (Sandbox Code Playgroud)
GetDefaultFolder适合快速访问默认文件夹,但如果您需要默认文件以外的其他内容,只需使用NameSpace对象的Folders属性向下导航树.