Excel VBA宏:创建Outlook日历事件 [英] Excel VBA Macro: Create an Outlook calendar event

查看:638
本文介绍了Excel VBA宏:创建Outlook日历事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

解决方案

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



将日历视为文件夹

  Const olFolderInbox = 6 
Const olAppointmentItem = 1'1 =约会

设置objOutlook = CreateObject(Outlook .Application)
设置objNamespace = objOutlook.GetNamespace(MAPI)
'查找您的收件箱
设置objInbox = objNamespace.GetDefaultFolder(olFolderInbox)

'获取您的收件箱的父级给予用户电子邮件
strFolderName = objInbox.Parent
设置objCalendar = objNamespace.Folders(公用文件夹 - & strFolderName).Folders(SubFolder1)。文件夹(子文件夹1)。文件夹(您的日历)

设置objapt = objCalendar.Items.Add(olAppointmentItem)
objapt.Subject = 测试'所有者
objapt.Start = Date + TimeValue(08:00:00)
objapt.Duration = 60 * 8'持续时间(以分钟为单位)或结束(我不确定所以尝试两者)
objapt.End = Date + TimeValue(16:00:00)
objapt.Save


Can you run a macro from Excel that can interact with Outlook and create and event on the calendar?

解决方案

This will allow you to add an appointment to a shared Calendar in any folder as long as you have the rights to write in it.

Treat Calendar as a Folder

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

这篇关于Excel VBA宏:创建Outlook日历事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆