Partager via


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 :

  1. 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 .

  2. Il utilise la méthode GetCalendarExporter de l’objet Folder pour créer une référence d’objet CalendarSharing pour le dossier.

  3. 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 .

  4. 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.

  5. 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.