Exporter un calendrier à l’aide du partage de charge utile
Microsoft Outlook offre la possibilité de partager des informations de calendrier avec d’autres utilisateurs à l’aide d’un fichier iCalendar (.ics) joint à un objet MailItem. L’objet CalendarSharing est utilisé pour générer le fichier iCalendar à partir d’un dossier contenant des éléments de calendrier et pour générer l’objet MailItem auquel le fichier iCalendar est attaché.
L'exemple de code qui suit montre comment utiliser l'élément CalendarSharing pour partager des informations de disponibilité pour les sept prochains jours avec un seul destinataire :
L’exemple obtient une référence d’objet Folder pour le dossier Calendar par défaut de l’utilisateur actuel, à l’aide de la méthode GetDefaultFolder de l’objet NameSpace .
Il utilise la méthode GetCalendarExporter de l’objet Folder pour créer une référence d’objet CalendarSharing pour le dossier.
Il définit ensuite les propriétés suivantes sur l'objet CalendarSharing pour restreindre la plage et le niveau des informations exportées par l'objet :
La propriété CalendarDetail est définie pour limiter les informations de chaque élément de calendrier aux informations de disponibilité uniquement.
Les propriétés StartDate et EndDate sont définies pour limiter les éléments de calendrier inclus dans le fichier aux sept prochains jours.
La propriété RestrictToWorkingHours est définie pour limiter les éléments de calendrier à ceux qui se trouvent dans les heures de travail.
La propriété IncludeAttachments est définie pour exclure toutes les pièces jointes pour les éléments de calendrier exportés par l’objet .
La propriété IncludePrivateDetails est définie pour exclure les détails de tous les éléments de calendrier privés exportés par l’objet .
Il appelle ensuite la méthode ForwardAsICal de l’objet CalendarSharing pour exporter les éléments de calendrier vers un fichier iCalendar et créer un objet MailItem avec le fichier iCalendar en tant que pièce jointe. La constante olCalendarMailFormatDailySchedule de l’énumération olCalendarMailFormat est utilisée avec la méthode ForwardAsICal pour indiquer que le corps de l’objet MailItem doit contenir, au format HTML, des informations de disponibilité pour les sept prochains jours.
Enfin, la méthode Add de la collection Recipients de l’objet MailItem nouvellement créé est appelée pour ajouter le destinataire spécifié et la méthode Send est utilisée pour envoyer l’objet MailItem.
Public Sub ShareWorkCalendarByPayload()
Dim oNamespace As NameSpace
Dim oFolder As Folder
Dim oCalendarSharing As CalendarSharing
Dim oMailItem As MailItem
On Error GoTo ErrRoutine
' Get a reference to the Calendar default folder
Set oNamespace = Application.GetNamespace("MAPI")
Set oFolder = oNamespace.GetDefaultFolder(olFolderCalendar)
' Get a reference to a CalendarSharing object for that
' folder.
Set oCalendarSharing = oFolder.GetCalendarExporter
' Set the CalendarSharing object to restrict
' the information shared in the iCalendar file.
With oCalendarSharing
' Send free/busy information only.
.CalendarDetail = olFreeBusyOnly
' Send information for the next seven days.
.startDate = Now
.endDate = DateAdd("d", 7, Now)
' Restrict information to working hours only.
.RestrictToWorkingHours = True
' Exclude attachments and private information.
.IncludeAttachments = False
.IncludePrivateDetails = False
End With
' Get the mail item containing the iCalendar file
' and calendar information.
Set oMailItem = oCalendarSharing.ForwardAsICal( _
olCalendarMailFormatDailySchedule)
' Send the mail item to the specified recipient.
With oMailItem
.Recipients.Add "someone@example.com"
.Send
End With
EndRoutine:
On Error GoTo 0
Set oMailItem = Nothing
Set oCalendarSharing = Nothing
Set oFolder = Nothing
Set oNamespace = Nothing
Exit Sub
ErrRoutine:
Select Case Err.Number
Case 287 ' &H0000011F
' The user denied access to the Address Book.
' This error occurs if the code is run by an
' untrusted application, and the user chose not to
' allow access.
MsgBox "Access to Outlook was denied by the user.", _
vbOKOnly, _
Err.Number & " - " & Err.Source
Case -2147467259 ' &H80004005
' Export failed.
' This error typically occurs if the CalendarSharing
' method cannot export the calendar information because
' of conflicting property settings.
MsgBox Err.Description, _
vbOKOnly, _
Err.Number & " - " & Err.Source
Case -2147221233 ' &H8004010F
' Operation failed.
' This error typically occurs if the GetCalendarExporter method
' is called on a folder that doesn't contain calendar items.
MsgBox Err.Description, _
vbOKOnly, _
Err.Number & " - " & Err.Source
Case Else
' Any other error that may occur.
MsgBox Err.Description, _
vbOKOnly, _
Err.Number & " - " & Err.Source
End Select
GoTo EndRoutine
End Sub
Assistance et commentaires
Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.