Powerpoint - VBA - 运行 应用程序命令栏

Powerpoint - VBA - Run Application CommandBars

我想创建一个宏,允许在 selected 对象后打开关联的 CommandBar。

我写了以下有时有效,但不是每次都有效 - 第一次无效。我不明白为什么。我必须第一次手动右键单击 select "Height and position" 选项 运行 然后一切正常 - 显示格式窗格。

你有什么避免右键单击部分的线索吗?

Sub Bars ()
  Application.CommandBars("Format Object").Visible = True
End Sub

这是 Office 2016。

测试的其他代码:

Sub Bars ()
  On Error GoTo Out
  Dim cmd As CommandBar
  For Each cmd In Application.CommandBars
    cmd.Enabled = True
  Next
  If Application.CommandBars("Format Object").Visible = True Then
    Application.CommandBars("Format Object").Visible = False
  Else
    Application.CommandBars("Format Object").Visible = True
  End If
Out:
  Exit Sub
End Sub

Commandbars 在 12 多年前随着 Office 2007 的推出而被弃用。有时需要 运行 CommandBarButton.Execute 到 运行 不在对象模型中的命令。除此之外,您应该研究功能区修改以显示自定义命令。

代码未按预期工作的原因很可能是因为 PowerPoint 2016(过去 12 年左右的所有版本)不再使用 CommandBars 作为用户界面。它可以工作,但最好尽可能使用功能区。

为了触发内置命令,可以使用命令的idMSO "name"。可以下载这些命令的完整列表 here

在列表中搜索 Format 会找到 idMSO ObjectFormatDialog。使用以下行在我的系统上进行测试会显示 Format Shape 任务窗格:

Application.CommandBars.ExecuteMso("ObjectFormatDialog")

"Mso" 方法是 CommandBars 唯一使用的方法,这些天...