使用visual basic访问收件箱中的子文件夹?

kin*_*jou 8 outlook vba outlook-vba subdirectory

Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set myOlItems = objNS.GetDefaultFolder(olFolderInbox).Items
Run Code Online (Sandbox Code Playgroud)

我使用上面的代码访问主要的Outlook收件箱,但如何使用vba访问收件箱中的文件夹和邮件!

bre*_*tdj 18

那非常接近:)

要获取收件箱下名为"temp"的文件夹中的所有邮件,请尝试此操作

Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim msg As Outlook.MailItem

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

For Each msg In olFolder.Items
    Debug.Print msg.Subject
Next
Run Code Online (Sandbox Code Playgroud)

  • 虽然我自己的个人喜好是在一个语句中分配"olFolder"而不是用第二个语句覆盖它:`Set olFolder = objNS.GetDefaultFolder(olFolderInbox).Folders("Temp")` (4认同)
  • +1访问非默认文件夹时,您需要遍历层次结构.设置级联对象引用来限制点数是最好的做法,但是当我赶时间时,我会把所有东西都塞进一行,就像@ Jean-FrançoisCorbett那样. (2认同)