【问题标题】:Excel to Outlook VBA pre-written bodyExcel 到 Outlook VBA 预先编写的正文
【发布时间】:2014-09-17 16:49:25
【问题描述】:

我有一个不断变化的库存清单(经常添加新内容),我正在尝试为其编写一个可与​​ Outlook 一起使用以发送预先编写的电子邮件响应的子目录。从我在网上找到的信息(例如 Ron de Bruin 的有用专业知识)看来,这应该是可能的,但我一直试图弄清楚是否可以在单击电子邮件超链接时执行代码H 列。

例如,我在 A 列中从第 3 行开始有一个人的名字,在 H 列中从第 3 行开始有他们的电子邮件,这会自动格式化为在 Outlook 中打开新的空白邮件的超链接。我想看看是否可以应用一个宏,它会在每次选择超链接时自动填充主题行和正文消息。这是我目前所拥有的:

Sub SendEmail()

    Dim olApplication As Outlook.Application

    Set olApp = CreateObject("Outlook.Application")

    Dim olMail As Outlook.MailItem

    Set olMail = olApp.CreateItem(olMailItem)

    olMail.To=
    olMail.Subject = "Subject Line"
    olMail.Body = "This is the body of the e-mail"
    olMail.Display

End Sub

到目前为止,我所拥有的内容不可行,因为我不确定是否需要将“.To=”字段作为范围(H 列)引用,或者是否需要在其中粘贴条件语句以基于当一个单元格的超链接被选中时。

【问题讨论】:

  • H3.value 应该适用于 to 字段。
  • 如果他们单击单元格中的超链接,那么它会使该单元格成为 ActiveCell。您现在有了获取其他数据的起点。
  • 由于超链接通常会启动 Web 浏览器或电子邮件应用程序,并且您想要捕获/重定向该操作,您可能想要探索这个:social.msdn.microsoft.com/Forums/office/en-US/…
  • 感谢大家的回复。如果我想将操作设为工作表事件,那么将超链接选择设为事件的等式是什么?当我尝试使用记录工具对此进行解码时,当我选择超链接电子邮件时,它不会记录任何内容。
  • 我的代码没有返回任何错误,但似乎没有做出任何所需的更改:

标签: excel vba outlook


【解决方案1】:

您的问题的答案是肯定的。
您需要做的是在 Outlook 中获取最近打开的 Inspector 对象
请记住,当您单击该链接时,它会自动创建一个 MailItem。
您需要获取新创建的 MailItem 对象才能对其进行操作。

类似:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    On Error GoTo halt
    Application.EnableEvents = False

    Dim olApp As Outlook.Application
    Dim olMail As Outlook.MailItem

    Set olApp = GetObject(, "Outlook.Application")

    Do While olApp.Inspectors.Count = 0
        DoEvents
    Loop

    Set olMail = olApp.Inspectors.Item(1).CurrentItem
    With olMail
        .Subject = "I was able to change the subject"
        .Body = "Dear " & Target.Range.Offset(0, -1).Value
        .Display
    End With
forward:
    Application.EnableEvents = True
Exit Sub
halt:
    MsgBox Err.Description
    Resume forward
End Sub

请注意,您需要通过正确引用将 Outlook 绑定到 Excel
另请注意 Outlook 应该打开,否则您需要添加处理程序。
这只是指出您将如何通过超链接获取新创建的邮件项。高温

【讨论】:

  • 谢谢L42!那效果很好。如果我想在活动单元格行中包含对其他单元格的单元格引用(无论选择哪个电子邮件超链接),是否有可能包含在此子项中?
  • @user3794203 你是什么意思?我没有跟上。你能澄清一下吗?
  • 是的,我很抱歉这太含糊了。如果我想在包含我刚刚选择的超链接的电子表格中包含来自同一行的单元格引用,并在“.Body”部分中包含引用,这可能吗?例如,现在不是 .Body 中的文本,如果我从 B 列中选择了超链接,并且在 A 列中有客户的名字,我是否能够执行 .Body 消息,例如:“Dear Active.Selection(” A"), ..."?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多