Outlook 约会 - 如何更改开始时间下拉列表中的项目
Posted
技术标签:
【中文标题】Outlook 约会 - 如何更改开始时间下拉列表中的项目【英文标题】:Outlook Appointment - how to change the items in the Start Time dropdown list 【发布时间】:2016-01-27 17:49:33 【问题描述】:我需要将开始/结束时间下拉列表中的项目更改为相隔 5 分钟。似乎没有简单的方法来设置它,所以我正在尝试 VBA。
我可以让检查员在打开预约表格时进行查找:
If Inspector.CurrentItem.Class = olAppointment Then
...但我不知道如何参考或更改开始/结束时间下拉控件以获得我想要的时间列表。
如果有人知道允许用户以 5 分钟为间隔选择时间的替代方法,那也太好了!
【问题讨论】:
如果 Outlook 有一个宏记录器,这将是多么简单?我看不到通过标准用户界面更改下拉列表的方法。您是否考虑过使用用户表单或自定义 Outlook 表单 - 还是必须是原生的? 使用宏记录器,我可能会通过更改它们的值并查看代码中吐出的内容来了解如何引用表单元素,或者至少获得一些关于控件如何排列的线索. 我的老板希望这是无缝的 - 用户在设置或更改约会时不应该做任何不同于他们通常所做的事情。 我认为您不会在 Outlook 中对此进行调整。 VBA 将帮助您完成涉及应用程序的任务,但您不能总是修改应用程序。也许您需要在 VSTO 中开发更强大的应用程序插件。 【参考方案1】:这并不能完全回答您的问题 - 但我不认为有可能做您需要的事情,因为这些下拉菜单没有编程界面,也没有办法手动实现您的目标想要,所以我不知道有一个宏记录器会有什么帮助
This Website 将告诉您如何设置具有自定义开始时间和持续时间的会议,但您可以构建自己的用户表单以在创建会议/约会时弹出请求开始和结束时间(或开始时间和持续时间,如果你愿意),这可能是你能得到的最好的解决方法。
您可能会为此发疯,并制作一个非模态用户表单,将自己置于现有控件之上并复制其功能 - 但这需要大量编码,而且速度会很慢,因为它会不断更新其位置或隐藏当约会项目失去焦点时,它自己,但如果你有决心,它是可以实现的。
在 VBA/Outlook 之外,您可以使用 Visual Studio 制作 VSTO 加载项,在约会/会议部分创建一个新功能区,该功能区有两个自定义控件,用于修改开始和结束日期。你也可以用你想要的任何代码来填充它们,但你可能需要学习 C# 才能做到这一点,尽管使用 VB.net(它更类似于 VBA)可能是可能的。 This Website 是一个合理的起点。
很抱歉这不是一个真正的答案,但我担心这个问题没有令人满意的答案。
【讨论】:
感谢您的回答!我的老板只是认为这很容易,因为 Excel 和 Word 宏是如此简单和灵活,但我想她错了。我们并不是真的愿意花时间学习和开发一项新技术来完成这项工作,因为它本来就不是一个重要的优先事项。【参考方案2】:检查Appointment.Start 属性。使用以下函数获取当前对象
Function GetCurrentItem() As Object
Dim objApp As Outlook.Application
Set objApp = Application
On Error Resume Next
Select Case TypeName(objApp.ActiveWindow)
Case "Explorer"
Set GetCurrentItem = objApp.ActiveExplorer.Selection.Item(1)
Case "Inspector"
Set GetCurrentItem = objApp.ActiveInspector.CurrentItem
End Select
GetCurrentItem.UnRead = False
Set objApp = Nothing
End Function
【讨论】:
我应该在哪里使用这个功能?我会从什么事件中调用它?我不仅希望引用开始时间下拉控件,还希望能够在完全不同的函数中独立引用它,而无需首先进行用户交互。 如果我尝试在代码中独立设置开始时间,Start 属性会很棒,但我需要更改开始时间下拉列表中的选项,以便用户可以简单地选择他们想要的时间。以上是关于Outlook 约会 - 如何更改开始时间下拉列表中的项目的主要内容,如果未能解决你的问题,请参考以下文章
如何在outlook中发送定期的提醒邮件?例如每月一次或者每两周一次的邮件?
VSTO Outlook 插件:当用户拖放定期约会时,无法在 Item_Change 事件中获取 AppointmentItem
Outlook VSTO - 当我调用约会.Display() 时如何显示“邀请与会者”文本框?