2015-04-08 3 views
0

ligne assez simple ici:NavigationFolders.add() bloque Outlook pour les calendriers partagés?

Set navFol = navGroup.NavigationFolders.Add (cal)

Cela fonctionne comme prévu pour les calendriers locaux, mais il se bloque instantanément Outlook si "cal" est un calendrier partagé. Quelqu'un sait-il une solution de contournement pour déplacer les calendriers partagés entre les dossiers de navigation? Je suis assez nouveau à VBA, juste hacking mon chemin pour obtenir une macro pour faire quelque chose simple pour moi - ou au moins quelque chose qui devrait être simple si ce n'est pas pour cela.

Je doute qu'il importe, mais juste au cas où, « cal » est en cours d'une boucle en parcourant une liste de EntryIDs comme ceci:

Set cal = Application.GetNamespace (« MAPI »). GetFolderFromID (str)

Et ce n'est pas l'affectation des variables qui échoue là (c'est pourquoi la ligne ci-dessus ne devrait pas être pertinente). Je peux faire n'importe quoi d'autre avec le calendrier si oui ou non il est partagé: lisez le nom, prenez des rendez-vous, etc. Outlook n'aime apparemment pas utiliser les calendriers partagés comme arguments pour NavigationFolders.Add().

EDIT: Je parle de calendriers NON par défaut partagés via des invitations de partage. GetDefaultSharedFolder ou similaire n'est pas ce que je veux.

Répondre

0

Essayez d'utiliser la méthode GetSharedDefaultFolder de la classe Namespace pour obtenir le dossier partagé à la place.

Sub ResolveName() 
Dim myNamespace As Outlook.NameSpace 
Dim myRecipient As Outlook.Recipient 
Dim CalendarFolder As Outlook.Folder 
Set myNamespace = Application.GetNamespace("MAPI") 
Set myRecipient = myNamespace.CreateRecipient("Eugene Astafiev") 
myRecipient.Resolve 
If myRecipient.Resolved Then 
    Call ShowCalendar(myNamespace, myRecipient) 
End If 
End Sub 

Sub ShowCalendar(myNamespace, myRecipient) 
Dim CalendarFolder As Outlook.Folder 
Set CalendarFolder = _ 
myNamespace.GetSharedDefaultFolder _ 
(myRecipient, olFolderCalendar) 
CalendarFolder.Display 
End Sub 

La méthode de la classe Add NavigationFolders ajoute le dossier spécifié, comme un objet NavigationFolder, à la fin de la collection NavigationFolders.

+0

Je ne recherche pas de dossiers par défaut, cependant. Je parle de calendriers non définis par défaut partagés avec une invitation de partage. – ThatDudeWhatziznem