gpt4 book ai didi

vba - Outlook 在电子邮件线程中获取其他电子邮件--UniqueBody

转载 作者:行者123 更新时间:2023-12-04 21:44:40 24 4
gpt4 key购买 nike

我正在使用 VBA 在发送之前以某种方式格式化所有出站电子邮件。例如,我想从嵌入在电子邮件中的所有表中删除第一列。我使用以下代码:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim wd As Word.Document
Set wd = ActiveInspector.WordEditor
Dim tb As Word.Table
For Each tb In wd.Tables
tb.Columns(1).Delete
Next tb
End Sub

上面的代码完美运行。但是,问题是我只想格式化我的电子邮件文本。通常,我会回复或转发其他人的电子邮件,这意味着前一封电子邮件的文本将位于同一个 Inspector 窗口中。我不想格式化文本/图像/等。线程中以前的电子邮件。如何做到这一点?

我知道线程中的每封电子邮件——尽管它们都在同一个窗口中——都是一个单独的单元。我知道这一点是因为在阅读作为线程一部分的电子邮件时,当您移动鼠标时,您会看到

enter image description here

在屏幕右侧,指示线程的下一部分在哪里。在撰写作为线程一部分的新电子邮件(回复或转发)时,不会显示上述按钮,但您仍会看到一条蓝色水平线将线程的不同部分彼此分开。

我在想,也许我可以搜索电子邮件中第一次出现的行,并且只应用格式直到那一点。但是,该行似乎并不是真正的文本或任何正常意义上可搜索的常规范式。事实上,如果您复制电子邮件文本(在发送之前),然后粘贴到 Word 中,该行就会消失。

有什么建议?
谢谢!

更新

我的问题与 2010 及更高版本中的“对话 View ”无关。
Outlook 2010 允许您查看一组线程中的其他电子邮件。但是,我想要的是能够(通过代码)在同一电子邮件中的线程中循环发送电子邮件。因此,如果有一封电子邮件“a”,然后是回复“b”,然后是另一个回复“c”,那么 c 也将在其下方包含 b,然后在其下方包含 a,所有这些都在同一电子邮件中。在伪代码中,我想要以下内容:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim wd As Word.Document
Dim smail as SubEmail
Dim tb As Word.Table
Set wd = ActiveInspector.WordEditor
For Each smail in wd
For Each tb In wd.Tables
tb.Columns(1).Delete
Next tb
Exit For
Next smail
End Sub

更新

我在 Exchange Web 服务中发现了一个类似的功能,称为 UniqueBody。见 here .这正是我正在寻找的,而不是 Exchange。

最佳答案

为什么不直接查找 "From:"chr(13) "Sent:"? Outlook 会将这些标签放在任何电子邮件中,无论它来自何处。

假设上面示例中的电子邮件 a、b、c 的整个正文都在 sBody 中:

Sub GetFirstThread()
Dim olItem As Outlook.MailItem
Dim sText As String

Set olItem = ActiveExplorer.Selection.Item(1)
sBody = olItem.Body
i=1
While i < Len(sBody)
If Asc(Mid(sBody, i, 1)) = 13 Then 'Look for From:
If Mid(sBody, i + 1, 5) = "From:" Then
'we found the start of email b
nPosEb = i
End If
End If
i=i+1
Wend
'...do something with nPosEb
End Sub

关于vba - Outlook 在电子邮件线程中获取其他电子邮件--UniqueBody,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16472344/

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