在Outlook VBA中使用通讯簿

时间:2012-05-23 12:30:13

标签: vba outlook addressbook outlook-vba email-templates

有人在问我是否可以实施一个简单的系统,让他根据他可以输入的一些参数发送Outlook模板邮件。

一个例子是这样的消息:

"Hello,

Please be informed that system **Parameter1** is current down.

Regards,"

我正在考虑在Outlook VBA中创建一个表单,该表单将动态查找在某个模板中找到字符串样式(例如@@parameters@@)的次数,然后在表单中创建一个编辑框对于每个找到的参数。

问题是我显然想为收件人添加一个框。我需要找到一种方法来调用Outlook Addressbook并使其行为像一个。这不像我希望的那么直观。到目前为止,我只能做到以下几点:

Dim snd As Outlook.SelectNamesDialog
Dim displayLL As Boolean

Set snd = Application.Session.GetSelectNamesDialog()
snd.NumberOfRecipientSelectors = Outlook.OlRecipientSelectors.olShowTo
snd.AllowMultipleSelection = True
displayLL = snd.display()

如您所见,这只会弹出地址簿,并允许我选择几个地址。但是我很难理解我如何能够实际制作一些实际上就像" To:"和" CC:"常规Outlook邮件中的字段。

1 个答案:

答案 0 :(得分:0)

不确定这是多么相关,考虑到我最终选择了一条完全不同的路线,但我认为我还是会添加这个,因为没有人回答。

我只是创建了一个表单,通过搜索%AppData%中的templates文件夹列出所有模板。然后我会循环遍历整个邮件,寻找参数样式的字符串,并在每次遇到这样的字符串时通过简单的输入框询问所需的值。我只是打开一个正确填写参数的新邮件,而不是添加自定义“收件人”框。 然后,用户可以像往常一样简单地将收件人添加到邮件中,并且他对此很好。这样,他还能够仔细检查邮件是否确实看起来像他想要的那样。

没有任何花哨的东西或7岁的孩子无法做到的东西,但它确实有效。