Delete specific menu item from custom menu
Thank you Dom, here is what I came up with.
(Any suggestions on error handling or formatting welcomed)
Dim cbMainMenuBar As CommandBar
Dim HelpMenuIndex As Integer
Dim cbcSTIMenu As CommandBarControl
Dim cbcAgingReport As CommandBarControl
Set cbMainMenuBar = Application.CommandBars("Worksheet Menu Bar")
Set cbcSTIMenu = cbMainMenuBar.FindControl(Type:=msoControlPopup,
Tag:="STI")
On Error Resume Next
cbcSTIMenu.Controls("Format Aging Report").Delete
On Error GoTo 0
If cbcSTIMenu Is Nothing Then
HelpMenuIndex = cbMainMenuBar.Controls("Help").Index
Set cbcSTIMenu = cbMainMenuBar.Controls.Add(Type:=msoControlPopup,
Befo=HelpMenuIndex)
cbcSTIMenu.Caption = "&STI"
cbcSTIMenu.Tag = "STI"
End If
With cbcSTIMenu.Controls.Add(Type:=msoControlButton)
.Caption = "Format Aging Report"
.OnAction = "AgingReportFormat"
End With
"DomThePom" wrote:
look at delete method od commandbarcontrol object
"Tim" wrote:
I am creating a new menu called STI to be used by future add-ins. Within
that menu, I added a menu item(msControlButton), Format Aging Report, to run
a macro. How do I delete Format Aging Report without deleting STI menu?
Sub AddMenus()
Dim cbMainMenuBar As CommandBar
Dim HelpMenuIndex As Integer
Dim cbcSTIMenu As CommandBarControl
'Would like to try to delete "Format Aging Report" here instead of current
code
On Error Resume Next
Application.CommandBars("Worksheet Menu Bar").Controls("&STI").Delete
On Error GoTo 0
Set cbMainMenuBar = Application.CommandBars("Worksheet Menu Bar")
HelpMenuIndex = cbMainMenuBar.Controls("Help").Index
Set cbcSTIMenu = cbMainMenuBar.Controls.Add(Type:=msoControlPopup,
Befo=HelpMenuIndex)
cbcSTIMenu.Caption = "&STI"
With cbcSTIMenu.Controls.Add(Type:=msoControlButton)
.Caption = "Format Aging Report"
.OnAction = "AgingReportFormat"
End With
End Sub
|