1

Тема: VBA: Создавать встречи в outlook от другого пользователя

Всем привет, просьба помочь со скриптом!
Не могу понять как создавать встречу в outlook от другого пользователя.
У группы пользователей есть помимо личной почты, доступ к общему почтовому ящику отдела - otdel@mail.ru (все встречи и письма создаются от otdel@mail.ru)

есть код в VBA:


Sub Calendar()
    Dim myOL As NameSpace, myCF As MAPIFolder, myCd As AppointmentItem
    Set myOL = Outlook.Application.GetNamespace("MAPI")
    Set myCF = myOL.GetDefaultFolder(olFolderCalendar)
    Set myCd = myCF.Items.Add
    
    With myCd
        .AllDayEvent = True
        .Start = Date
        .Subject = "Встреча"
        .Location = "в переговорке"
        .Categories = "test"
        .Display
        .Body = "обсудим код VBA?"
        .SendUsingAccount = .Session.Accounts.Item("otdel@mail.ru")
End With
End Sub

При отработке макроса вылезает ошибка: один или несколько параметров имеют недопустимые значения и выделяет строку - .SendUsingAccount = .Session.Accounts.Item("otdel@mail.ru").
встреча создаётся, но под текущим пользователем.
Как я понимаю, макрос пытается создать встречу от otdel@mail.ru, обращается к календарю пользователя.
Но как мне создать встречу в календаре otdel@mail.ru?.

2 (изменено: mozers, 2015-12-28 14:30:42)

Re: VBA: Создавать встречи в outlook от другого пользователя

tipp
Замени строку

Set myCF = myOL.GetDefaultFolder(olFolderCalendar)

на это

Set mbox = myOL.Folders.Item("otdel@mail.ru")
Set myCF = mbox.Folders.Item("Календарь")

Имена папок "otdel@mail.ru" и "Календарь" надо заменить на реальные названия как они называются у пользователя.

3

Re: VBA: Создавать встречи в outlook от другого пользователя

Спасибо!
Я уже решил данную проблему, поменял строку в макросе:

Set myCF = myOL.GetDefaultFolder(olFolderCalendar)

на

Set myCF = myOL.Folders.Item(2).Folders.Item(3) 
Set myCd = myCF.Items.Add

но Ваш вариант конечно элегантней и его легче перенести на другой комп,
буду пользоваться вашим вариантом, ещё раз Спасибо!