【发布时间】:2013-07-13 22:08:22
【问题描述】:
我正在开发一个 PowerPoint 加载项,并希望在加载项应用程序运行时暂时禁用某些功能区控件。
我开发了一个解决方案,当插件启用时可以正常工作,但这还不够,因为它禁用了一些常用的控件,如 SlideMaster、SlideSorter 等。
我正在使用 PowerPoint 2010。
这是一个格式正确的示例 XML:
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon startFromScratch="false">
<tabs>
<tab idMso="TabView">
<group idMso="GroupMasterViews" getVisible="GetVisible"/>
</tab>
</tabs>
</ribbon>
</customUI>
这是一个示例回调,取自this SO answer:
Sub GetVisible(control As IRibbonControl, ByRef returnedVal As Boolean)
If TrapFlag Then
returnedVal = False ' control is hidden
Else:
returnedVal = True ' control is not hidden
End If
End Sub
当我导航到 View 功能区时,一条警报通知我:
由于您的安全设置,该宏无法找到或已被禁用。
大概这是指GetVisible 宏?我的宏设置是:
- 启用所有宏(不推荐)
- 信任对 VBA 项目对象模型的访问
到目前为止,我一直在努力解决我发现的问题,但到目前为止无法实施建议。大多数答案都是针对 Excel 的。我还没有真正找到任何特定于 PowerPoint 的内容,但我认为将代码从一个应用程序移植到另一个应用程序应该不会非常困难,因为我已经在 VBA 中为许多其他事情做到了这一点。
我也尝试过this 方法,但SetCustomUI 在Application 或Presentation 级别的PowerPoint 中不可用,也许它是唯一的或仅适用于Visual Studio?
【问题讨论】:
标签: vba ribbon powerpoint ribbonx