【问题标题】:Outlook VBA to create new draft email for each Contact Group in contact listOutlook VBA 为联系人列表中的每个联系人组创建新的草稿电子邮件
【发布时间】:2013-05-07 23:10:44
【问题描述】:

有没有一个 VBA 脚本可以

  • 为每个联系人组创建电子邮件草稿
  • 联系人组的联系人在“收件人”字段中
  • 具有统一的主题
  • 拥有统一的身体
  • ...如果正文包含签名,则加分

背景: 在我的联系人列表中,我有大约 50 个联系人组,每个代表一个客户,每个包含多个联系人。每月一次,我必须通过电子邮件将发票发送给每个客户。这目前需要

  • 为 50 个联系人组中的每一个创建电子邮件
  • 将主题行复制到 50 个草稿中的每一个
  • 将正文复制到 50 个草稿中的每一个

我找到了很多关于通过 VBA 创建电子邮件的参考资料,但没有关于使用联系人组为其提供动力的参考资料。

    Sub NewEmail()
    Dim myOutlook As Outlook.Application
    Dim objMailMessage As Outlook.MailItem
    Set myOutlook = Outlook.Application
    Set objMailMessage = myOutlook.CreateItem(0)
        With objMailMessage
            .To = "" '?
            .Subject = "Email subject"
            .Body = "Email body." 'Msg + Signature?
            .Display
            .Save
            .Close olPromptForSave
        End With
    End Sub

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    您需要在代码的开头添加对“联系人组”的引用。假设您有一个名为“Grupa Testowa”(英语中的“测试组”)的人。所以,这样修改你的代码:

    Sub NewEmail()
        'new part of the code here
        Dim CF As Folder
        Set CF = Application.Session.GetDefaultFolder(olFolderContacts)
    
        Dim DLI As DistListItem
        Set DLI = CF.items("Grupa Testowa")
    
        'your code here with one modification within With...End With
        With objMailMessage
            .To = DLI
        '...rest of your code
        End with
    End sub
    

    更多参考请查看 MSDN 中的DistListItem Object 描述。

    【讨论】:

    • 这很好。现在有没有办法遍历所有 DistListItems,或者一次一个是最好/唯一的方法?
    • MSDN: DistListItem Members 在我看来,我需要获取 DistListItem.EntryID 值的列表并遍历它们。也许?
    猜你喜欢
    • 1970-01-01
    • 2019-06-03
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多