向数据透视表工具功能区/工具栏添加按钮

时间:2017-10-31 10:05:31

标签: excel vba excel-vba

我正在尝试将一个按钮添加到将分配给宏的功能区。我知道如何通过XML创建按钮以及如何将其分配给宏,但我很难识别正确的控件ID /命令栏。我想在"数据透视图工具"中添加一个按钮。菜单。我可以在没有VBA的情况下执行此操作,转到"自定义功能区"。但是,我无法弄清楚如何通过VBA访问它。几个小时以来我一直反对这一点。以下是我尝试过的一些代码示例。我还尝试了其他几段代码,但似乎没有人指出我想要的工具栏方向。我还发布了相关工具栏的图片。我想添加一个按钮:数据透视图工具 - >分析 - >数据。按钮将在那里的数据部分中分组,与"更改源数据"相同。和"刷新"。谢谢你的帮助。

Public Sub ListToolbars()
'Code used to attempt to pinpoint correct toolbar

Dim cmdBar As CommandBar
Dim cmdBarButton As CommandBarControl
Dim lr As Long

lr = 1

Set cmdBar = Application.CommandBars("Pivot Chart Popup")
'Loop through
For Each cmdBarButton In cmdBar.Controls

        Cells(lr, 4).Value = cmdBarButton.Caption
        Cells(lr, 5).Value = cmdBarButton.ID
        Cells(lr, 6).Value = cmdBarButton.Type

    lr = lr + 1
Next cmdBarButton
End Sub

Public Sub BET_ShowCommandBarNames()
'Code used to identify all bars
Dim cmdBar As CommandBar
Dim lrownumber As Long
Dim z As Integer

Dim commandButton As CommandBarButton
Dim popButton As CommandBarPopup

   Workbooks.Add
   lrownumber = 1
   For Each cmdBar In CommandBars
      Range("A" & lrownumber).Value = cmdBar.Name
      Select Case cmdBar.Type
         Case msoBarTypeNormal
               Range("B" & lrownumber).Value = "Toolbar"
               If cmdBar.Name = "Borders" Then cmdBar.Visible = True
         Case msoBarTypeMenuBar
               Range("B" & lrownumber).Value = "Menu Bar"
         Case msoBarTypePopup
               Range("B" & lrownumber).Value = "zShortcut"

      End Select
      lrownumber = lrownumber + 1
   Next cmdBar
   Columns("A:B").Select
   Columns("A:B").EntireColumn.AutoFit
   Range("A1").Select
   Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, _
                  Key2:=Range("A1"), Order2:=xlAscending
End Sub

enter image description here

1 个答案:

答案 0 :(得分:1)

不幸的是,我认为您无法向内置组添加按钮。因此,您必须使用XML创建自己的自定义组。尝试这样的事情......

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
    <ribbon>
        <contextualTabs>
              <tabSet idMso="TabSetPivotChartTools" >
                  <tab idMso="TabPivotChartToolsAnalyze" >
                     <group id="MyCustomGroup1" label="My Custom Group" insertAfterMso="GroupPivotChartData" >
                        <button id="customButton1" label="Click Me" 
                            size="large" onAction="Macro1" imageMso="AppointmentColor3" 
                            supertip="This is a super tip..." />
                     </group>
                  </tab>
               </tabSet>
        </contextualTabs>
    </ribbon>
</customUI>

希望这有帮助!