使用Excel VBA打开Outlook .msg文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Excel VBA打开Outlook .msg文件相关的知识,希望对你有一定的参考价值。
我有以下代码
Sub Kenneth_Li()
Dim objOL As Outlook.Application
Dim Msg As Outlook.MailItem
Set objOL = CreateObject("Outlook.Application")
inPath = "C:UsersSiliconPlusDesktopSi+ Contact ListsContact_Si+"
thisFile = Dir(inPath & "*.msg")
Do While thisFile <> ""
'Set Msg = objOL.CreateItemFromTemplate(thisFile)
'Or
Set Msg = objOL.OpenSharedItem(thisFile)
Msg.display
MsgBox Msg.Subject
thisFile = Dir
Loop
Set objOL = Nothing
Set Msg = Nothing
End Sub
当我使用OpenSharedItem
时,它会给出运行时错误438对象不支持此属性或方法。
当我使用CreateItemFromTemplate
时,我收到以下错误:
无法打开文件:AUTO Andy Low Yong Cheng不在办公室(2014年9月22日返回).msg。 该文件可能不存在,您可能没有权限打开它,或者它可能在另一个程序中打开。 右键单击包含该文件的文件夹,然后单击“属性”以检查该文件夹的权限。
答案
我不是百分之百关于你想要使用代码的东西,但试试这个:
Sub LiminalMsgbx()
Dim outappp, outmaill As Object
Dim pthh As String
pthh = "C:DeskTopMyTemplate.oft"
Set outappp = CreateObject ("Outlook.Application")
Set outmaill = outapp.CreateItemFromTemplate(pthh)
With outmaill
.display
End With
Set outappp = Nothing
Set outmaill = Nothing
End Sub
您也可以使用.send
而不是.display
。
另一答案
OpenSharedItem
方法由Namespace
对象暴露,而不是Application
。
Set objOL = CreateObject("Outlook.Application")
set objNs = objOL.GetNamespace("MAPI")
objNs.Logon
...
Set Msg = objNs .OpenSharedItem(thisFile)
至于第二个错误,它非常明确 - 无法找到该文件。您必须使用文件夹路径提供完全限定的文件名。您只提供文件名。
以上是关于使用Excel VBA打开Outlook .msg文件的主要内容,如果未能解决你的问题,请参考以下文章
使用 VBA Excel 浏览文件夹以在 Outlook 邮件中附加文件 [重复]