我正在尝试添加一个自定义按钮,在右键单击电子邮件时将我的宏启动到上下文菜单。我在我的工作环境中执行此操作,并且无法访问除普通 Outlook 和 VBA 之外的任何内容。我无法创建附加组件或使用 XML 编辑器或其他开发程序。
我正在尝试使用记事本直接编辑officeUI文件。我知道这适用于功能区按钮(尽管我刚刚使用 Outlook 中的功能区自定义功能添加了它们)。
到目前为止,我的 XML 看起来像这样(请原谅缺少缩进,我正在使用记事本):
<mso:cmd app="olkexplorer" dt="1" />
<mso:customUI xmlns:x1="http://schemas.microsoft.com/office/2009/07/customui/macro" xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui">
<contextMenus>
<contextMenu idMso="ContextMenuMailItem">
<button id="MyButton2" label="My Button 2" insertBeforeMso="Copy" onAction="Project1.GetButtonID" visible="true" />
<button id="MyButton2asdf" label="My Basutton 2" insertBeforeMso="Reply" onAction="Project1.GetButtonID" visible="true" />
</contextMenu>
</contextMenus>
<mso:ribbon>
<mso:qat/>
<mso:tabs>
<mso:tab idQ="mso:TabMail">
<mso:group...>
<mso:button...>
</mso:group>
</mso:tab>
</mso:tabs>
</mso:ribbon>
</mso:customUI>
除了上下文菜单部分之外的所有内容都是我在功能区中创建一些宏按钮后的原始文件。
我已经尝试过:
mso:
之后添加 <
。id
、idQ
和 idMso
之间切换。mso:
之前添加
ContextMenuMailItem
我已经没有主意了。如果有人有任何建议或可以发布他们自己的工作 OfficeUI 文件并添加上下文菜单,我将非常感激!
经过更多研究后,我得出的结论是,无法通过编辑
.officeUI
文件来自定义 Outlook 中的上下文菜单。
通常,要自定义 Outlook UI,需要像您当前所做的那样编辑位于
olkexplorer.officeUI
中名为 C:\Users\%username%\AppData\Local\Microsoft\Office
的文件1。
但是,我尝试使用
<mso:contextMenus>
部分,但无法使其工作。一旦此标记出现在 XML 文件中并且我重新启动 Outlook,我就会丢失所有自定义设置。这告诉我该标签导致一些解析错误,因为它不受支持。
查看 MS-CUSTOMUI 的文档,他们甚至没有提及 Outlook,这表明不能保证 Outlook 会支持那里详细说明的功能。
Outlook MVP 还确认此处 无法自定义上下文菜单(又名右键单击菜单)。我假设他们的意思是“不可能使用 Outlook UI”,因为我们知道可以通过 VSTO 加载项。
在 Excel 中,您可以使用 CommandBarControls.Add 方法将元素添加到上下文菜单,但此功能在 Outlook 2013 中已被删除,如此处所述。
来自微软关于 Fluent API 的文档:
要以编程方式自定义 Outlook 中的 UI,您必须编写 插件。
另请参阅这个问题。
1:但是,我认为你不需要在第一行加上
<mso:cmd app="olkexplorer" dt="1" />
。这是从界面导出功能区自定义内容作为 .exportedUI
文件时得到的内容,但它不应该在 .officeUI 文件中发挥作用