向个人 PowerPoint 加载项添加额外的行

Adding additional row to personal PowerPoint AddIn

我创建了一个自定义的 PowerPoint 加载项,它由一个工具栏和多个 msoControlButtons 组成,单击它们会执行一个宏。当我不断添加更多按钮时,它们会水平添加(见图)。我希望将按钮放在第二行,例如F 按钮在 A 按钮下方。

Dim oToolbar As CommandBar
Dim oButton As CommandBarButton
Dim MyToolbar As String

MyToolbar = "Kewl Tools"

On Error Resume Next   
Set oToolbar = CommandBars.Add(Name:=MyToolbar, _
    Position:=msoBarFloating, Temporary:=True)
If Err.Number <> 0 Then  
      Exit Sub
End If

On Error GoTo ErrorHandler
Set oButton = oToolbar.Controls.Add(Type:=msoControlButton)

With oButton

     .DescriptionText = ""   
     .Caption = "Do Button1 Stuff"    
     .OnAction = "Button1"  
     .Style = msoButtonIcon    
     .FaceId = 52       
End With

Toolbar Picture

我已经有很长一段时间没做纯粹的 VBA 命令栏了,这可能不完全您想要的,但已经很接近了。

首先,创建一个包含您的按钮的 msoControlPopup

Dim ButtonGroup as CommandBarPopup
Set ButtonGroup = oToolBar.Controls.Add(Type:=msoControlPopup)
ButtonGroup.BeginGroup = True
With ButtonGroup.Controls
    'Button 1:
    Set oButton = .Add(Type:=msoControlButton)
    With oButton
         .DescriptionText = ""   
         .Caption = "Do Button1 Stuff"    
         .OnAction = "Button1"  
         .Style = msoButtonIcon    
         .FaceId = 52       
    End With

    'Button 2:
    Set oButton = .Add(Type:=msoControlButton)
    With oButton
         .DescriptionText = ""   
         .Caption = "This is Button 2!"    
         .OnAction = "Button2"  
         .Style = msoButtonIcon    
         .FaceId = 99       
    End With

    ' repeat adding buttons as needed

End With

示例: 每个 Data / Sig。测试/图表是一个 CommandBarPopup 项目,其中每个项目都包含以上述方式实现的 CommandBarButtons 序列。示例说明了来自 Excel 的相同方法,但这在 PowerPoint 中应该同样有效。