如何在Outlook中以编程方式访问“消息栏”?

时间:2019-06-26 07:59:24

标签: vba outlook notifications status

当我在Outlook 2010中启用“外出”自动消息时,“消息栏”中将填充警告文本。我想使用这样的功能来通知用户我已经启用了自己的功能,但是我找不到对以编程方式访问该栏的任何引用;我发现了一些有关状态栏的信息,但是由于某些原因,它在Outlook的VBA中不可用。

我什至不确定此功能的正确英文名称是“ message bar”;我指的是同一条,它在Word中用于通知用户文档是“危险的”,因为它来自互联网。 此消息栏是否在Outlook VBA中公开?

我还尝试寻找其他方法来通知用户,因此我开始研究功能区:如果可以显示自己的选项卡,则可以将其用作“消息栏”,但是功能区由Outlook管理的方式与其他Office不同程序,因此周围可用的大多数示例在Outlook中均不适用/不起作用。

我能够以编程方式创建一个选项卡并向其中添加一个按钮,但是后来我无法使该选项卡可见,因此它没有用。

我还尝试使用命令栏的“位置”属性:不仅是msoBarTop,还包括msoBarBottom或msoBarPopup,但是Outlook一直忽略了我的努力,所以我陷入了困境。

但是也许应该在一个单独的问题中解决使用VBA在Outlook中管理功能区(这里有一些问题,但是我找不到对我有用的提示;我无法访问VB VSTO)。

1 个答案:

答案 0 :(得分:2)

您所指的区域用于实现Mail Tips。尽管您可以通过Exchange管理中心创建自定义项,但是它们不能通过代码进行交互。

实际上不建议使用功能区控件来显示状态或用户消息,因为功能区通常是静态的(菜单,下拉菜单和图库除外)。

如果您的目标是显示瞬态警报,则更好的方法是使用Windows SDK来显示Windows通知。如果将警报托管在Outlook中至关重要,请考虑使用“窗体区域”或带有“任务窗格”的加载项来显示您的消息。甚至是简单的VBA MessageBox或用户表单。

还请注意,您对CommandBar的使用实际上仅适用于Outlook 2007和更早版本-在新版本中没有更多的CommandBar,只有功能区。