【问题标题】:Using Word VBA outlook email body is blank使用 Word VBA Outlook 电子邮件正文为空白
【发布时间】:2020-08-15 09:58:28
【问题描述】:

我在 Outlook 中制作了以下 vba 脚本,当我收到电子邮件正文时它工作正常。我将脚本移动到 word vba,现在当我收到电子邮件正文时,它是空的。我可以正常访问主题和其他字段,但电子邮件正文字段为空白。如何访问电子邮件的正文?

Dim appOutlook As Object
Dim olNs As Object
Dim olFolder As Object
Dim olItem As Object
Dim iRow As Integer
Dim email_body As String

' Get/create Outlook Application
On Error Resume Next
Set appOutlook = GetObject(, "Outlook.Application")
If appOutlook Is Nothing Then
Set appOutlook = CreateObject("Outlook.Application")
End If
On Error GoTo 0

Set olNs = appOutlook.GetNamespace("MAPI")
Set olFolder = olNs.GetDefaultFolder(6) _
                .Parent.Folders("folder2")  ' 6 == Inbox for some reason


For iRow = 1 To olFolder.Items.Count
Next iRow

For Each myItem In olFolder.Items
myItem.Display
 Dim Email As Outlook.MailItem
Set Email = appOutlook.ActiveInspector.CurrentItem
myItem.Close olDiscard
'Word document
Dim wdApp As Word.Application
Set wdApp = CreateObject("Word.Application")

Dim wdDoc As Word.Document
Set wdDoc = wdApp.Documents.Add
    wdDoc.Activate

Dim wdRange As Word.Range
Set wdRange = wdDoc.Range(0, 0)
email_body = Email.Body

【问题讨论】:

    标签: vba outlook ms-word


    【解决方案1】:

    在以下代码中,您遍历文件夹中的所有项目并在 Outlook 的新检查器窗口中显示每个项目:

    For Each myItem In olFolder.Items
    
    MsgBox myItem.Body
    
    

    不需要调用Display 方法来获取实际的邮件项目。相反,您可以使用现有的参考。

    【讨论】:

    • 由于某些奇怪的原因,在 Outlook 中使用 vba 代码时,我必须显示电子邮件,然后将其关闭。去掉那条线就不行了
    • 代码中是否有任何错误?你试过调试吗?
    • 代码在 Outlook vba 中运行良好。当我在 Word VBA 中运行它时,它只能获取电子邮件主题而不是电子邮件正文
    • 代码似乎触发了 Outlook 中的安全问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    相关资源
    最近更新 更多