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

Powerpoint-VBA-运行应用程序命令栏,vba,powerpoint,commandbar,Vba,Powerpoint,Commandbar,我想创建一个宏,一旦选择了一个对象,就可以打开相关的命令栏 我写了下面这篇文章,它有时有效,但不是每次都有效——它不是第一次有效。我不明白为什么。我必须手动右键单击并选择“高度和位置”选项,以便第一次运行它,然后一切正常-显示格式窗格 你有什么线索可以避免右击部分吗 Sub Bars () Application.CommandBars("Format Object").Visible = True End Sub 这是2016办公室 测试的其他代码: Sub Bars () On

我想创建一个宏,一旦选择了一个对象,就可以打开相关的命令栏

我写了下面这篇文章,它有时有效,但不是每次都有效——它不是第一次有效。我不明白为什么。我必须手动右键单击并选择“高度和位置”选项,以便第一次运行它,然后一切正常-显示格式窗格

你有什么线索可以避免右击部分吗

Sub Bars ()
  Application.CommandBars("Format Object").Visible = True
End Sub
这是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

我不知道为什么commandbar会出现在任何现代版本的Office中。12年多前,随着Office2007的推出,它们被弃用了。有时需要运行CommandBarButton.Execute来运行不在对象模型中的命令。除此之外,您应该研究功能区修改以显示自定义命令。

我不知道为什么命令栏会出现在任何现代版本的Office中。12年多前,随着Office2007的推出,它们被弃用了。有时需要运行CommandBarButton.Execute来运行不在对象模型中的命令。除此之外,您还应该研究功能区修改以显示自定义命令。

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

为了触发内置命令,可以使用命令的
idMSO
“名称”。可以下载这些命令的完整列表

在列表中搜索格式将打开idMSO
ObjectFormat对话框
。使用以下行在我的系统上进行测试将显示
格式形状
任务窗格:

Application.CommandBars.ExecuteMso("ObjectFormatDialog")

“Mso”方法是目前唯一使用的
CommandBars

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

为了触发内置命令,可以使用命令的
idMSO
“名称”。可以下载这些命令的完整列表

在列表中搜索格式将打开idMSO
ObjectFormat对话框
。使用以下行在我的系统上进行测试将显示
格式形状
任务窗格:

Application.CommandBars.ExecuteMso("ObjectFormatDialog")
现在,
commandbar
只用于“Mso”方法