如何从excel vba中的Outlook共享邮箱中提取已发送的项目

时间:2018-05-28 11:18:24

标签: excel vba outlook

我尝试使用Excel中的以下代码从Outlook中的群组/共享邮箱中提取电子邮件。

olObjNs.GetSharedDefaultFolder(olShareName,olFolderInbox)

使用此我可以提取收件箱项目。从下面的文章, 的 https://msdn.microsoft.com/en-us/vba/outlook-vba/articles/namespace-getshareddefaultfolder-method-outlook

它说" ..... olFolderSentMail不能为此参数指定。" 如何获得'已发送的物品'来自共享邮箱。? 我尝试了 olObjNs.GetDefaultFolder(olFolderSentMail),但它检索了我的个人电子邮件'已发送的商品'。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您可以找到共享存储,例如使用以下代码:

olObjNs.GetSharedDefaultFolder(olShareName, olFolderInbox).Store

然后使用Outlook对象模型中Store类的GetDefaultFolder方法。它返回一个Folder对象,该对象表示存储中的默认文件夹,并且是FolderType参数指定的类型。

此方法类似于GetDefaultFolder对象的NameSpace方法。区别在于此方法获取与该帐户关联的传递存储上的默认文件夹,而NameSpace.GetDefaultFolder返回当前配置文件的默认存储上的默认文件夹。

答案 1 :(得分:0)

只需替换共享邮箱地址,并在其中包含“已发送邮件”文件夹的情况下就应该这样做:

Set objNS = olApp.GetNamespace("MAPI")
Set objOwner = objNS.CreateRecipient("email@domain.com")
objOwner.Resolve
Set objOutlookFile = objNS.GetSharedDefaultFolder(objOwner, olFolderInbox).Parent.Folders("Sent Items")

对我来说很好;)