【发布时间】:2013-05-27 10:46:51
【问题描述】:
我有一个 PPT 插件,如果不维护某个 ViewType,它可能会失败。
我没有看到任何可以捕获更改并阻止更改的 PPTEvent(尽管,如果可能,请告知!)。所以我一直在使用 Ribbon/CommandBars 尝试禁用或隐藏与 ViewType 相关的某些控件。
我已通过Id 识别控件,并尝试将其.Visible 属性设置为False,或者设置为.Enabled = False,但似乎都没有任何影响。控件仍然可见,并且单击它们仍然会执行。
这个例子我会尝试禁用Slide Sorter 控件。这可以防止 VBE Execute 按钮,但它确实不会禁用按钮的操作,只要用户可能仍然单击它,它仍然会执行。
Sub DisableViewChange()
Dim cBar As CommandBar
Dim ctrl As CommandBarControl
Set cBar = CommandBars("View")
Set ctrl = cBar.FindControl(Id:=738)
ctrl.Visible = True
ctrl.Enabled = False
Set btn = ctrl
btn.Execute
Set cBar = Nothing
Set btn = Nothing
Set ctrl = Nothing
End Sub
更新以包含我想禁用/隐藏/删除的元素的图片:
【问题讨论】:
-
你能添加屏幕截图来展示你想要关闭的视图类型和控件吗?我没有运行英文版的PP,它会更容易得到你的情况。
-
@KazJaw 见上面的截图,如果信息足够,请告诉我。
-
谢谢,现在让我想想 :)
-
我刚刚在我的笔记中发现您不能从 VBA 修改功能区按钮,需要在文件的 XML 代码中更改它。但是,使用 VBA 可以更改按钮的行为,但我找不到解决方案:(
-
我认为这是 Ribbon/XML 的事情...我玩过 Ribbon 可扩展性,但那是几个月前的事了。我对 Ribbon 不是很熟悉,那会是我可以制作成 PPAM 文件的特定于文件的 XML 吗?
标签: vba ribbon powerpoint