【发布时间】:2013-10-23 01:24:38
【问题描述】:
这是一个奇怪的挠头!
我有一个用 VBA 编写的跨 MSO 插件,它使用相同的 XML 定义、功能区控件和 VBA 回调过程。它适用于 PowerPoint 2007、2010 和 2013(x32 和 x64)、Excel 2010 和 2013(x32 和 x64)。
但是,它仅在 Excel 2007 中作为源 .xlsm 加载时有效
当保存和加载为 .xlam(使用注册表 OPENX 方法或将 .xlam 复制到 XLSTART 文件夹)时,它会失败。
当我调用一个过程以使ribbonUI 对象无效以便根据其各自回调过程中的图像/状态刷新库控件(其下方有按钮)时发生故障。我检查了对功能区对象的引用没有丢失,但是调用 invalidate 方法不会导致功能区控件调用它们各自的回调过程,因此它们不会被刷新。
我已尝试通过将以下元素添加到 2007 XML 部分中的图库定义来解决此问题,虽然这确实解决了图像项刷新问题,但按钮仍然不调用回调过程。
invalidateContentOnDrop="true"
我没有发布任何代码,因为我不确定哪一点有助于诊断这种奇怪的行为,但可以根据要求这样做!
有什么想法吗?
【问题讨论】:
标签: vba excel excel-2007 excel-addins ribbonx