Outlook Explorer对象获取选中附件返回NULL问题求助
获取Outlook打开窗口中选中的附件
你遇到的问题是因为Explorer.AttachmentSelection仅适用于Outlook主界面(Explorer)中选中的邮件条目的附件集合,而你截图里的场景是在打开的邮件窗口(Inspector)里选中的附件,这个方法自然取不到。
要获取这种场景下的选中附件,需要借助Outlook邮件的WordEditor对象(因为Outlook的HTML格式邮件是用Word作为编辑器渲染的),具体实现步骤如下:
- 首先获取当前激活的Inspector窗口:
Dim objInspector As Outlook.Inspector Set objInspector = Application.ActiveInspector - 从Inspector窗口获取对应的邮件项:
Dim objMail As Outlook.MailItem Set objMail = objInspector.CurrentItem - 获取邮件的Word编辑器对象,进而获取选中的内容:
Dim objWordDoc As Word.Document Dim objSelection As Word.Selection Set objWordDoc = objMail.GetInspector.WordEditor Set objSelection = objWordDoc.Application.Selection - 遍历选中内容里的InlineShape(邮件内容里的附件以InlineShape对象存在),判断并提取附件信息:
Dim objShape As Word.InlineShape For Each objShape In objSelection.InlineShapes If objShape.Type = wdInlineShapeLinkedPicture Or objShape.Type = wdInlineShapePicture Then ' 输出附件文件名,可根据需求调整处理逻辑 Debug.Print objShape.OLEFormat.Object.DisplayName End If Next
注意:需要在VBA编辑器的工具-引用中勾选Microsoft Word xx.x Object Library(xx.x对应你的Word版本)才能正常运行代码。
如果是在编辑模式的邮件窗口中操作,逻辑完全一致,都是通过WordEditor获取选中的内嵌附件。
内容的提问来源于stack exchange,提问作者Smit Rathod
相关产品推荐
相关产品推荐

