gpt4 book ai didi

vba - 将联系人添加到 Outlook 通讯组列表

转载 作者:行者123 更新时间:2023-12-02 05:52:15 24 4
gpt4 key购买 nike

我有 1000 多个联系人,每个联系人都有一系列常见职位。我想以编程方式将每个职务组(例如职务为“总经理”的所有联系人)添加到通讯组列表(例如“总经理”)中。

最佳答案

好的,这里只是默认联系人文件夹的示例。同样,您必须转到可能存在 DL 的每个文件夹,从默认的“联系人”文件夹开始,在创建 Dist 列表之前检查它是否存在。

经过尝试和测试(在 Outlook VBA 中)

Option Explicit

Sub GetJobList()
Dim olApp As Outlook.Application
Dim olNmspc As Outlook.NameSpace
Dim olAdLst As Outlook.AddressList
Dim olAdLstEntry As Outlook.AddressEntry
Dim olDLst As Outlook.DistListItem, olDLstItem As Outlook.DistListItem
Dim olMailItem As Outlook.MailItem
Dim olRecipients As Outlook.Recipients

Dim jobT() As String, JobTitle As String
Dim i As Long

Set olApp = New Outlook.Application
Set olNmspc = olApp.GetNamespace("MAPI")

i = 0

'~~> Loop through the address entries
For Each olAdLst In olNmspc.AddressLists
Select Case UCase(olAdLst.Name)
Case "CONTACTS"
'~~> Get the Job Title
For Each olAdLstEntry In olAdLst.AddressEntries
On Error Resume Next
JobTitle = Trim(olAdLstEntry.GetContact.JobTitle)
On Error GoTo 0

If JobTitle <> "" Then
ReDim Preserve jobT(i)
jobT(i) = olAdLstEntry.GetContact.JobTitle
i = i + 1
End If
Next
End Select
Next

'~~> Loop through the job title to create the distribution lists
For i = LBound(jobT) To UBound(jobT)
'~~> Check if the DL List exists
On Error Resume Next
Set olDLst = olNmspc.GetDefaultFolder(olFolderContacts).Items(jobT(i))
On Error GoTo 0

'~~> If not then create it
If olDLst Is Nothing Then
Set olDLst = olApp.CreateItem(7)
olDLst.DLName = jobT(i)
olDLst.Save
End If
Next i

'~~> Loop through the address entries to add contact to relevant Distribution list
For Each olAdLst In olNmspc.AddressLists
Select Case UCase(olAdLst.Name)
Case "CONTACTS"
'~~> Get the Job Title
For Each olAdLstEntry In olAdLst.AddressEntries
On Error Resume Next
JobTitle = Trim(olAdLstEntry.GetContact.JobTitle)
On Error GoTo 0

If JobTitle <> "" Then
On Error Resume Next
Set olDLst = olNmspc.GetDefaultFolder(olFolderContacts).Items(JobTitle)
On Error GoTo 0

'~~> Create a mail item
Set olMailItem = olApp.CreateItem(0)
Set olRecipients = olMailItem.Recipients
olRecipients.Add olAdLstEntry.GetContact.Email1Address

'~~> Add to distribution list
With olDLst
.AddMembers olRecipients
.Close olSave
End With

Set olMailItem = Nothing
Set olRecipients = Nothing
End If
Next
End Select
Next

Set olNmspc = Nothing
Set olApp = Nothing
Set olDLst = Nothing

End Sub

关于vba - 将联系人添加到 Outlook 通讯组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10637729/

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