3

%appdata%\Microsoft\Office\olkapptitem.officeUI我有:

<?xml version="1.0" encoding="UTF-8"?>
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="DoIt">
    <ribbon startFromScratch="false">
        <tabs>
            <tab idMso="TabMail">
                <group id="group1" label="Hazaa!">
                    <button id="one" onAction="DoIt2" label="hi" visible="true"/>
                </group>
            </tab>
        </tabs>
    </ribbon>
</customUI>

在 Outlook 中,在 VBA 编辑器中,我有一个名为 Module1 的模块,它具有:

Option Explicit

Sub DoIt(ribbon As IRibbonUI)
    MsgBox "hi"
End Sub

Sub DoIt2(control As IRibbonControl)
    MsgBox "bye"
End Sub

但是,两者都DoIt不会DoIt2运行。如果我在单击按钮时取出参数,DoIt2它将运行,但不是相反。

任何帮助表示赞赏。

4

1 回答 1

4

您不能在 VBA 中定义功能区回调。如果要使用回调自定义 Ribbon Ui,则需要开发一个插件。与任何其他 Office 应用程序不同,Outlook 不支持使用 VBA 自定义功能区 UI。

Ribbon UI 在 MSDN 的以下系列文章中有深入描述:

于 2015-01-09T13:43:49.900 回答