【问题标题】:Open outlook with To field from Excel vba使用 Excel vba 中的 To 字段打开 Outlook
【发布时间】:2015-07-21 12:42:12
【问题描述】:

我想打开仅填写“收件人”字段的 Outlook 撰写电子邮件窗口。

在c#中,如果我们写“mailto:abc@abc.com”,那么它将打开带有To字段的撰写电子邮件窗口。

是否可以使用 Excel vba?

【问题讨论】:

    标签: excel outlook vba


    【解决方案1】:

    VBA Hyperlinks.Add 方法是您想要的(请参阅https://msdn.microsoft.com/en-us/library/office/ff822490.aspx)。

    ...
    With ActiveSheet
        .Cells(4,4).Value = "someone@somewhere.com"
        .Hyperlinks.Add Anchor:=.Cells(4, 4), _
        Address:="mailto:someone@somewhere.com"
    End With
    

    【讨论】:

    • 如果我想在按钮点击时这样做呢?
    • 然后将建议的代码(或类似代码)添加到按钮处理程序。链接https://support.office.com/en-in/article/Add-a-button-and-assign-a-macro-to-it-in-a-worksheet-d58edd7d-cb04-4964-bead-9c72c843a283 提供了添加按钮和相关事件处理代码的合理解释。
    • 上面的代码打开了网站,而不是应该打开 Outlook 撰写电子邮件窗口。
    • 您使用的是哪个操作系统?可能是您的部署系统上没有定义默认邮件应用程序吗?在 Windows 7(通过注册表)和 Win 8(通过设置 UI)上,您可以将特定协议与特定应用程序相关联。会不会是“MAILTO”协议当前与您的浏览器而不是邮件客户端相关联?
    • 感谢@VirtualMichael 的帮助,我对此进行了搜索并找到了工作代码。请检查我的答案。
    【解决方案2】:

    我尝试了下面的代码,它就像一个魅力。

    Sub CreateStatusReportToBoss()
      Dim myItem As Outlook.MailItem
    
      Dim outApp As Outlook.Application
      Set outApp = New Outlook.Application
    
      Set myItem = outApp.CreateItem(olMailItem)
    
      Set myRecipient = myItem.Recipients.Add("mail@abc.com")
    
      myItem.Subject = "Status Report"
      myItem.Display
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-02
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      相关资源
      最近更新 更多