Свойство AppointmentItem "From"
У меня есть этот код для создания встречи Outlook из листа Excel. Работает нормально. Но я использую 2 учетные записи электронной почты в Outlook, и я не знаю, как чередовать узел собрания между этими учетными записями. Какое свойство объекта AppointmentItem изменяет хост собрания?
PS: не "Организатор", я уже пробовал.
@РЕДАКТИРОВАТЬ:
Я пытался использовать .SendUsingAccount
как предложил Macro Man, но все еще не меняет отправителя.
Мой код:
Set oApp = CreateObject("Outlook.Application")
Set ItemAppoint = oApp.CreateItem(1)
ItemAppoint.MeetingStatus = olMeeting
'===============Accounts===============
Dim Var As Object
Set Var = ItemAppoint.session.accounts
'======================================
With ItemAppoint
.SendUsingAccount = Var(2) 'The account that I want to use is the index "2"
.Subject = "Sub"
.Body = "text"
.Display
End With
4 ответа
.Organizer
свойство только для чтения, вы после .SendUsingAccount
свойство для чтения / записи
AppointmentItem.SendUsingAccount
Дополнительные сведения на страницах MSDN: свойство AppointmentItem.SendUsingAccount (Outlook)
Свойство AppointmentItem.SendUsingAccount позволяет указать объект Account, представляющий учетную запись, под которой должен быть отправлен AppointmentItem.
Какое свойство объекта AppointmentItem изменяет хост собрания?
Самый простой способ - создать элемент встречи в папке календаря, который принадлежит определенной учетной записи. Какой код вы используете для создания пунктов встречи?
В статье Практическое руководство. Создание нового элемента назначения Outlook описаны все возможные способы создания элементов назначения в Outlook. Попробуйте найти нужную папку и используйте метод Add Items
учебный класс. Например:
items.Add(Outlook.OlItemType.olAppointmentItem)
Метод GetDefaultFolder объекта Store
class возвращает объект Folder, который представляет папку по умолчанию в хранилище и имеет тип, указанный в аргументе FolderType. Этот метод похож на GetDefaultFolder
метод NameSpace
объект. Разница в том, что этот метод получает папку по умолчанию в хранилище доставки, которая связана с учетной записью, тогда как NameSpace.GetDefaultFolder
возвращает папку по умолчанию в хранилище по умолчанию для текущего профиля.
Это работает хорошо.
Sub Test()
Dim oNamespace As Outlook.Namespace
Dim oCalendarFolder As Outlook.MAPIFolder
Dim oItems As Outlook.items
Dim strEntryID As String
Set oOutlook = CreateObject("Outlook.Application")
Set oNamespace = oOutlook.GetNamespace("MAPI")
For Each i In oNamespace.Folders
If i.Name = "yourEmailIDhere" Then
For Each j In i.Folders
If j.Name = "Calendar" Then
strEntryID = j.EntryID
End If
Next j
End If
Next i
Set oCalendarFolder = oNamespace.GetFolderFromID(strEntryID)
oItems = oCalendarFolder.items
oMeeting = oItems.Add(Outlook.OlItemType.olAppointmentItem)
oMeeting.Save
oMeeting.Display`
End sub`
Я только что подошел к этому вопросу, когда искал решение той же проблемы: в моем случае встреча создавалась для другой учетной записи, чем хотелось, и
.SendUsingAccount
собственность не помогала.
Мне удалось решить эту проблему, напрямую создав встречу внутри папки, которую я хотел:
Set AppointItem = OutApp.GetNamespace("MAPI").Folders("secondary@hostname.com").Folders("Calendar").Items.Add(Outlook.OlItemType.olAppointmentItem)
Теперь запись создана для
secondary@hostname.com
счет, а не для
default@hostname.com
учетная запись.