gpt4 book ai didi

vba - 使用当前打开的电子邮件

转载 作者:行者123 更新时间:2023-12-03 01:50:56 24 4
gpt4 key购买 nike

我想获取事件的打开的MailItem(无论是新邮件还是收到的邮件)。当用户运行我的宏时,我需要向该邮件添加一些内容。我正在使用 Outlook 2003 和 VBA。

我发现了这个:How do you get a reference to the mail item in the current open window in Outlook using VBA?但是它不起作用,因为 TypeName(Application.ActiveWindow) 设置为空。我还尝试了 Set Mail = Application.ActiveInspector.currentItem 但它也不起作用。

关于 ActiveInspector 的事情,我一定有一些不明白的地方。

根据要求,这是位于专用模块中的过程/宏,当用户单击 Application_Startup() 方法中添加的菜单按钮时调用:

Sub myMacro()
Dim NewMail As Outlook.MailItem
Set NewMail = Application.ActiveInspector.currentItem
End Sub

最佳答案

我不知道你的代码到底出了什么问题。但一方面,您并没有验证新的可编辑电子邮件是否已打开。以下概念验证正是我认为您想要做的事情:在正在撰写的事件电子邮件中插入一些文本。如果这不可能,它会显示一个消息框来解释原因。

插入文本的部分仅在 Word 用作电子邮件编辑器时才起作用(将 ALWAYS be the case in Outlook 2010+ )。如果不是,您将必须直接解析和更新 Body 或 HTMLBody 文本。

Sub InsertText()
Dim myText As String
myText = "Hello world"

Dim NewMail As MailItem, oInspector As Inspector
Set oInspector = Application.ActiveInspector
If oInspector Is Nothing Then
MsgBox "No active inspector"
Else
Set NewMail = oInspector.CurrentItem
If NewMail.Sent Then
MsgBox "This is not an editable email"
Else
If oInspector.IsWordMail Then
' Hurray. We can use the rich Word object model, with access
' the caret and everything.
Dim oDoc As Object, oWrdApp As Object, oSelection As Object
Set oDoc = oInspector.WordEditor
Set oWrdApp = oDoc.Application
Set oSelection = oWrdApp.Selection
oSelection.InsertAfter myText
oSelection.Collapse 0
Set oSelection = Nothing
Set oWrdApp = Nothing
Set oDoc = Nothing
Else
' No object model to work with. Must manipulate raw text.
Select Case NewMail.BodyFormat
Case olFormatPlain, olFormatRichText, olFormatUnspecified
NewMail.Body = NewMail.Body & myText
Case olFormatHTML
NewMail.HTMLBody = NewMail.HTMLBody & "<p>" & myText & "</p>"
End Select
End If
End If
End If
End Sub

关于vba - 使用当前打开的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15476986/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com