Auflisten des Namens und des Bürostandorts jedes Vorgesetzten, der zu einer Exchange-Verteilerliste gehört
In diesem Thema wird beschrieben, wie Sie es einem Benutzer ermöglichen können, eine Exchange-Verteilerliste auszuwählen und den Namen und den Bürostandort jedes Mitglieds anzuzeigen, das als Vorgesetzter zu dieser Verteilerliste gehört. Die wichtigsten Schritte dieses Verfahrens sind folgende:
Im folgenden Codebeispiel wird ein Dialogfeld Verteilerliste auswählen angezeigt, in dem der Benutzer eine Verteilerliste auswählen kann.
Es verwendet das SelectNamesDialog-Objekt , um das Dialogfeld anzuzeigen und die Benutzerauswahl abzurufen. Dann wird die Benutzerauswahl durch die SelectNamesDialog.Recipients -Eigenschaft abgerufen.
Für jedes Mitglied in der ausgewählten Verteilerliste gilt Folgendes:
- Wenn das Mitglied ein Vorgesetzter ist, zeigt das Codebeispiel den Namen und die Büronummer des Vorgesetzten an.
Jedes Element in der Verteilerliste ist ein AddressEntry-Objekt . Indem überprüft wird, ob AddressEntry.AddressEntryUserType entweder olExchangeUserAddressEntry oder olExchangeRemoteUserAddressEntry ist, weist das Beispiel das AddressEntry-Objekt einem ExchangeUser-Objekt zu und verwendet
ExchangeUser.GetDirectReports.Count >0
als Kriterium, um zu bestimmen, ob der Benutzer ein Manager ist. Anschließend werden die Eigenschaften Name und OfficeLocation des ExchangeUser-Objekts angezeigt.Wenn es sich bei dem Member um eine Verteilerliste handelt, wird im Codebeispiel die Unterroutine
EnumerateDLManagers
aufgerufen. Für jedes Mitglied in der Verteilerliste, das ein Vorgesetzter ist, werden dann der Name und die Büronummer des Vorgesetzten angezeigt.
Kopieren Sie das folgende Visual Basic for Applications Codebeispiel in den Visual Basic-Editor, und führen Sie ausShowManagersOfGroups
. Beachten Sie, dass dieses Codebeispiel nur für eine Verteilerliste gilt, die als Mitglieder nur Exchange-Benutzer enthält oder die als Mitglieder Exchange-Verteilerlisten enthält, wobei jedoch alle Mitglieder der letzteren Exchange-Benutzer sein müssen. Wenn es sich bei den Mitgliedern um weiter verschachtelte Verteilerlisten handelt, muss der Code weiter angepasst werden.
Sub ShowManagersOfGroups()
Dim oRecip As Outlook.Recipient
Dim oSND As Outlook.SelectNamesDialog
Dim oAE As Outlook.AddressEntry
Dim oAEs As Outlook.AddressEntries
Dim oEU As Outlook.ExchangeUser
Dim oDL As Outlook.ExchangeDistributionList
Dim oLists As Outlook.AddressLists
Dim oList As Outlook.AddressList
Set oLists = Application.Session.AddressLists
For Each oList In oLists
If oList.Name = "All Groups" Then
Exit For
End If
Next
Set oSND = Application.Session.GetSelectNamesDialog
With oSND
.NumberOfRecipientSelectors = olShowTo
.InitialAddressList = oList
.Caption = "Select Distribution List"
.ToLabel = "D/L"
.ShowOnlyInitialAddressList = True
.AllowMultipleSelection = False
.Display
End With
For Each oRecip In oSND.Recipients
If oRecip.AddressEntry.AddressEntryUserType = _
olExchangeDistributionListAddressEntry Then
Set oDL = oRecip.AddressEntry.GetExchangeDistributionList
Set oAEs = oDL.GetExchangeDistributionListMembers
For Each oAE In oAEs
If oAE.AddressEntryUserType = olExchangeUserAddressEntry _
Or oAE.AddressEntryUserType = olExchangeRemoteUserAddressEntry Then
Set oEU = oAE.GetExchangeUser
If oEU.GetDirectReports.Count Then
Debug.Print oEU.Name, oEU.OfficeLocation
End If
ElseIf oAE.AddressEntryUserType = _
olExchangeDistributionListAddressEntry Then
EnumerateDLManagers oAE
End If
Next
End If
Next
End Sub
Sub EnumerateDLManagers(oAddress As AddressEntry)
Dim oAE As Outlook.AddressEntry
Dim oAEs As Outlook.AddressEntries
Dim oEU As Outlook.ExchangeUser
Dim oDL As Outlook.ExchangeDistributionList
Set oDL = oAddress.GetExchangeDistributionList
Set oAEs = oDL.GetExchangeDistributionListMembers
For Each oAE In oAEs
If oAE.AddressEntryUserType = olExchangeUserAddressEntry _
Or oAE.AddressEntryUserType = olExchangeRemoteUserAddressEntry Then
Set oEU = oAE.GetExchangeUser
If oEU.GetDirectReports.Count Then
Debug.Print oEU.Name, oEU.OfficeLocation
End If
End If
Next
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.