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