Excel VBAmacros:创build一个Outlook日历事件

你可以从Excel中运行一个可以与Outlook交互的macros,并在日历上创build和事件吗?

这将允许您将约会添加到任何文件夹中的共享日历,只要您有权在其中写入。

将日历视为文件夹

Const olFolderInbox = 6 Const olAppointmentItem = 1 '1 = Appointment Set objOutlook = CreateObject("Outlook.Application") Set objNamespace = objOutlook.GetNamespace("MAPI") 'Finds your Inbox Set objInbox = objNamespace.GetDefaultFolder(olFolderInbox) 'Gets the parent of your Inbox which gives the Users email strFolderName = objInbox.Parent Set objCalendar = objNamespace.Folders("Public folders - " & strFolderName).Folders("SubFolder1").Folders("subfolder of subfolder 1").Folders("Your Calendar") Set objapt = objCalendar.Items.Add(olAppointmentItem) objapt.Subject = "Test" 'Owner objapt.Start = Date + TimeValue("08:00:00") objapt.Duration = 60 * 8 'Duration(in minutes) OR End(I'm not sure so try both) objapt.End= Date + TimeValue("16:00:00") objapt.Save 

其他答案略有改善

 Sub createappt() Const olFolderCalendar = 9 Const olAppointmentItem = 1 '1 = Appointment Set objOutlook = CreateObject("Outlook.Application") 'Set objOutlook = GetObject(, "Outlook.Application") ' outlook already open Set objNamespace = objOutlook.GetNamespace("MAPI") Set Items = objNamespace.GetDefaultFolder(olFolderCalendar).Items Set objCalendar = objNamespace.GetDefaultFolder(olFolderCalendar).Folders("subfolder") Set objCalendar = objNamespace.GetDefaultFolder(olFolderCalendar) ' main calender Set objapt = objCalendar.Items.Add(olAppointmentItem) objapt.Subject = "Test" 'Owner objapt.Start = Date + TimeValue("08:00:00") objapt.Duration = 60 * 8 'Duration(in minutes) OR End(I'm not sure so try both) objapt.End = Date + TimeValue("16:00:00") objapt.Save End Sub