VBA, Outlook, просмотр «Народных календарей» - PullRequest
3 голосов
/ 11 апреля 2011

Я пытаюсь программно (с VBA) получить доступ к календарям, которыми другие делятся со мной.Они перечислены в моем Outlook в разделе «Народные календари».Я искал в Интернете это, и все предложения сделали немного больше, чем смущают меня.Как я могу получить список всех предоставленных мне календарей, а затем один конкретный календарь из «Народных календарей»?

Ответы [ 3 ]

2 голосов
/ 11 апреля 2011

Проверьте возвращенные значения из следующего кода.Он ищет человека по имени, так же, как при вводе получателя в новое электронное письмо, а затем захватывает этот общий календарь и перечисляет все общие встречи.

0 голосов
/ 19 июля 2011

Просто предложение помочь людям, которые могут пытаться использовать код ShowOtherUserCalFolders (), размещенный здесь.Этот код создаст несколько скрытых экземпляров внешнего вида, которые при многократном запуске могут привести к потере работоспособности вашей машины.Вместо создания нового приложения Outlook.app вы можете вызвать текущее открытое приложение (для этого должен быть открыт внешний вид).

Для этого замените Dim objOL As Outlook.Application на Dim objOL as Object и Set objOL = Application на Set myOlApp = GetObject(, "Outlook.Application")

Также убедитесь, что вы закрыли objExpCal Explorer, так как это также создаст скрытый экземпляр outlook, добавьте objExpCal.Close в конец вашего кода.

0 голосов
/ 12 апреля 2011

Я думаю, что это становится ближе. Это произошло от выдающегося программирования Сью Мошер в Microsoft Outlook 2007: Jumpstart для опытных пользователей и администраторов. Надеюсь, она не против.

Sub ShowOtherUserCalFolders()
    Dim objOL As Outlook.Application
    Dim objNS As Outlook.NameSpace
    Dim objExpCal As Outlook.Explorer
    Dim objNavMod As Outlook.CalendarModule
    Dim objNavGroup As Outlook.NavigationGroup
    Dim objNavFolder As Outlook.NavigationFolder
    Dim objFolder As Outlook.Folder
    Dim colExpl As Outlook.Explorers
    Dim objExpl As Outlook.Explorer
    Set objOL = Application
    Set objNS = objOL.Session
    Set colExpl = objOL.Explorers
    Set objExpCal = _
      objNS.GetDefaultFolder(olFolderCalendar).GetExplorer
    Set objNavMod = objExpCal.NavigationPane.Modules. _
      GetNavigationModule(olModuleCalendar)
    Set objNavGroup = objNavMod.NavigationGroups. _
      GetDefaultNavigationGroup(olPeopleFoldersGroup)
    For Each objNavFolder In objNavGroup.NavigationFolders
        Set objFolder = objNavFolder.Folder
        Set objExpl = _
          colExpl.Add(objFolder, olFolderDisplayNormal)
        objExpl.Activate
        objExpl.WindowState = olMaximized
        objExpl.WindowState = olMinimized
    Next
    Set objOL = Nothing
    Set objNS = Nothing
    Set objNavMod = Nothing
    Set objNavGroup = Nothing
    Set objNavFolder = Nothing
    Set objFolder = Nothing
    Set colExpl = Nothing
    Set objExpl = Nothing
End Sub
...