首页 > 解决方案 > 如何打开 .msg 文件?

问题描述

我想打开一个 .msg 文件。

我无法像打开工作簿一样打开 .msg 文件。

Sub OpenMail()
    
    Workbooks("MyBook").Sheets("Sheet1").Activate

    Dim MyItem1 As Outlook.MailItem
    Dim MyItem2 As Outlook.MailItem

    If Range("A1").Value > 0 Then 
        Set MyItem1.Open = "C:\Users\jeff\OneDrive\Documents\Email #1.msg"
        MyItem1.Display

    Else If Range("A1").Value < 0 Then
        Set MyItem2.Open = "C:\Users\jeff\OneDrive\Documents\Email #2.msg"
        MyItem2.Display
    Else 
        MsgBox("No items to open")

    End If

End Sub

它给了我

运行时错误 91
对象变量或未设置块变量

我在参考库(在工具下)中连接了 Outlook。

标签: excelvbamsg

解决方案


您需要先创建 Outlook 对象本身,然后使用它打开邮件。

您将 Mailitem “设置”为新打开的消息:

Public Sub foo()

Dim objOL As Outlook.Application
Set objOL = CreateObject("Outlook.Application")

Dim MyItem1 As Outlook.MailItem
Dim MyItem2 As Outlook.MailItem

Workbooks("MyBook").Sheets("Sheet1").Activate

If Range("A1").Value > 0 Then

      Set MyItem1 = objOL.Session.OpenSharedItem("C:\Users\jeff\OneDrive\Documents\Email #1.msg")

      MyItem1.Display

ElseIf Range("A1").Value < 0 Then
      Set MyItem2 = objOL.Session.OpenSharedItem("C:\Users\jeff\OneDrive\Documents\Email #2.msg")
        MyItem2.Display
Else
      MsgBox ("No items to open")

End If

set objOL = Nothing

End Sub

另外就像一个注释,ElseIf 语句中没有空格(尽管这可能只是一个复制和粘贴问题)。

希望这可以帮助!


推荐阅读