我正在尝试将一个按钮添加到将分配给宏的功能区。我知道如何通过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
答案 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>
希望这有帮助!