如何在Outlook VBA宏中迭代特定Outlook文件夹中的所有电子邮件项目(在这种情况下,该文件夹不属于我的个人inbux,而是共享邮箱收件箱的子文件夹 .
像这样的东西,但我从来没有做过Outlook宏...
For each email item in mailboxX.inbox.mySubfolder.items
// do this
next item
我试过这个,但找不到收件箱子文件夹...
Private Sub Application_Startup()
Dim objNS As Outlook.NameSpace
Dim objFolder As Outlook.MAPIFolder
Set objNS = GetNamespace("MAPI")
Set objFolder = objNS.Folders("myGroupMailbox")
Set objFolder = objFolder.Folders("Inbox\mySubFolder1\mySubFolder2")
On Error GoTo ErrorHandler
Dim Msg As Outlook.MailItem
For Each Item In objFolder.Items
If TypeName(Item) = "MailItem" Then
Set Msg = Item
If new_msg.Subject Like "*myString*" Then
strBody = myItem.Body
Dim filePath As String
filePath = "C:\myFolder\test.txt"
Open filePath For Output As #2
Write #2, strBody
Close #2
End If
End If
ProgramExit:
Exit Sub
ErrorHandler:
MsgBox Err.Number & " - " & Err.Description
Resume ProgramExit
Next Item
End Sub
3 回答
格式为:
正如评论中所建议的那样“将下一个项目行移至ProgramExit标签之前”
在我的情况下,以下工作:
同样,您也可以迭代日历项目:
Note 此示例正在使用过滤,而
.GetDefaultFolder(olFolderTasks)
则获取日历项目的内置文件夹 . 例如,如果要访问收件箱,请使用olFolderInbox
.递归函数循环遍历所有文件夹,直到找到指定的文件夹名称....