Как создать собрание в календаре не по умолчанию для адреса электронной почты не по умолчанию в outlook, используя код VBA?
Код, который у меня есть, создает приглашения в календаре по умолчанию для адреса электронной почты по умолчанию:
Sub CreateAppointmentOutlook()
Dim oApp As Outlook.Application
Dim oApt As Outlook.AppointmentItem
Dim oRecip As Outlook.Recipient
Dim i As Long
Dim lastRow As Long
Dim ws As Worksheet
Dim wb As ThisWorkbook
Set oApp = New Outlook.Application
Set ws = ActiveWorkbook.Worksheets("Sheet1")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
For i = 1 To lastRow
Set oApt = oApp.CreateItem(olAppointmentItem)
oApt.MeetingStatus = olMeeting
Debug.Print (ws.Cells(i, 1).Value)
With oApt
.Subject = "Test"
' do some other stuff
End With
Next i
End Sub
Самым близким, к которому я мог прийти, даже пытаясь изменить календарь, была эта ссылка . Чтобы даже начать пытаться реализовать этот код в моем примере, я сделал следующее в качестве теста
Sub Whatever()
Dim olApp As Object
Set olApp = GetObject(, "Outlook.Application")
Dim ns As Outlook.Namespace
Set ns = olApp.GetNamespace("MAPI")
Dim Items As Object
Set Items = GetFolderPath("otheremail@contoso.com\Calendar").Items
Debug.Print (Items.Parent.FolderPath)
Debug.Print ("End")
End Sub
Но я получаю сообщение об ошибке «91»: переменная объекта или переменная блока не установлены в строке. Set Items = GetFolderPath ("otheremail@contoso.com \ Calendar"). Items
UPDATE
Этот код работает:
Sub Whatever()
Dim olApp As Object
Set olApp = GetObject(, "Outlook.Application")
Dim oApt As Outlook.AppointmentItem
Dim ns As Outlook.Namespace
Dim oFolder As Outlook.Folder
Set ns = olApp.GetNamespace("MAPI")
Set oFolder = ns.Folders("otheremail@contoso.com")
Dim CalItems As Outlook.Items
Set CalItems = oFolder.Items
End Sub
Но как тогда создать запись календаря в этой другой коллекции папок CalItems?