ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Delete specific menu item from custom menu (https://www.excelbanter.com/excel-programming/407400-delete-specific-menu-item-custom-menu.html)

Tim

Delete specific menu item from custom menu
 
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

DomThePom

Delete specific menu item from custom menu
 
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


Tim

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



All times are GMT +1. The time now is 09:08 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com