【问题标题】:Outlook 2013 - VBA - Ribbon - onLoad not firingOutlook 2013 - VBA - 功能区 - onLoad 未触发
【发布时间】:2015-01-08 21:34:52
【问题描述】:

%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

但是,DoItDoIt2 都不会运行。如果我从DoIt2 中取出参数,那么当我点击按钮时它会运行,但不是相反。

感谢任何帮助。

【问题讨论】:

  • 那是因为你没有向参数传递任何东西。单击时,您正在运行DoIt2,但由于您有一个非可选参数control,它不会成功运行。你有错误吗?
  • Christmas007,这些是功能区回调。你不应该向他们传递任何东西,他们是由 Outlook 调用的。

标签: vba ms-office ribbon office-2013 outlook-2013


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多