Adding multiple menu Items. Problems handling the click events

  • Thread starter UkJBaXJhcw
  • Start date Views 2,777
U

UkJBaXJhcw

#1
I've added a new menu bar with four buttons to Outlook using the code shown

below (VB code). When it runs, MenuItem1 successfully runs Public sub

MenuItem1_Click(). But when I click any of the other buttons, (MenuItem2,

MenuItem3, or MenuItem4) instead of calling their respective sub(), they

execute all the sub's assigned to the other buttons MenuItem2_Click,

MenuItem3_Click, and MenuItem4_Click, always starting in that order, as if

there was a single sub() instead of three.

What am I doing wrong?

This is the code I use to add the menu bar and its buttos,

VB code:

Private Sub AddMenuBar()

'Get the menu bar in the explorer window.

menuBar = Me.Application.ActiveExplorer().CommandBars.ActiveMenuBar()

'verify that menu does not exist and remove it if it does

newmenu = Me.Application.ActiveExplorer.CommandBars.ActiveMenuBar _

> FindControl(Office.MsoControlType.msoControlPopup, , "Calendarios

de R y D", True, True)

If newmenu IsNot Nothing Then

newmenu.Delete(True)

End If

'Add new menu

menu = menuBar.Controls.Add(Office.MsoControlType.msoControlPopup,

Temporary:=False)

If menu IsNot Nothing Then

'edit the menu properties

menu.Caption = "Calendarios de R y D"

menu.Tag = "Calendarios de R y D"

'add a submenu to the menu and set its properties

MenuItem1 =

menu.Controls.Add(Office.MsoControlType.msoControlButton, , , Before:=1,

Temporary:=True)

MenuItem2 =

menu.Controls.Add(Office.MsoControlType.msoControlButton, , , Before:=2,

Temporary:=True)

MenuItem3 =

menu.Controls.Add(Office.MsoControlType.msoControlButton, , , Before:=3,

Temporary:=True)

MenuItem4 =

menu.Controls.Add(Office.MsoControlType.msoControlButton, , , Before:=4,

Temporary:=True)

With MenuItem1

> Style = Office.MsoButtonStyle.msoButtonIconAndCaption

> Caption = "Calculate Baby's Calendar"

> FaceId = 65

> Tag = "Tag Cloud Submenu"

'.OnAction = "MenuItem1_Click"

End With

With MenuItem2

> Style = Office.MsoButtonStyle.msoButtonIconAndCaption

> Caption = "Calculate Diane's Responsibilities"

> FaceId = 66

> Tag = "Otra nube"

'.OnAction = "MenuItem2_Click"

End With

With MenuItem3

> Style = Office.MsoButtonStyle.msoButtonIconAndCaption

> Caption = "Free Diane's Unmovables"

> FaceId = 65

> Tag = "Otra nube"

'.OnAction = "MenuItem3_Click"

End With

With MenuItem4

> Style = Office.MsoButtonStyle.msoButtonIconAndCaption

> Caption = "Create Diane's Unmovables"

> FaceId = 65

> Tag = "Otra nube"

'.OnAction = "MenuItem4_Click"

End With

'Add an event handler to the menu item

AddHandler MenuItem1.Click, AddressOf MenuItem1_Click

AddHandler MenuItem2.Click, AddressOf menuItem2_Click

AddHandler MenuItem3.Click, AddressOf menuItem3_Click

AddHandler MenuItem4.Click, AddressOf menuItem4_Click

'Display the new menu

menu.Visible = True

End If

End Sub
 

Michael Bauer

Senior Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server
#2
This example works

http://www.vboffice.net/en/developers/create-new-commandbar-with-one-button

Best regards

Michael Bauer

Am Mon, 6 Apr 2009 09:01:01 -0700 schrieb RBAiras:


> I've added a new menu bar with four buttons to Outlook using the code


shown
> below (VB code). When it runs, MenuItem1 successfully runs Public sub
> MenuItem1_Click(). But when I click any of the other buttons, (MenuItem2,
> MenuItem3, or MenuItem4) instead of calling their respective sub(), they
> execute all the sub's assigned to the other buttons MenuItem2_Click,
> MenuItem3_Click, and MenuItem4_Click, always starting in that order, as


if
> there was a single sub() instead of three.
> What am I doing wrong?
> This is the code I use to add the menu bar and its buttos,
> VB code:
> Private Sub AddMenuBar()

> 'Get the menu bar in the explorer window.
> menuBar =


Me.Application.ActiveExplorer().CommandBars.ActiveMenuBar()
> 'verify that menu does not exist and remove it if it does
> newmenu = Me.Application.ActiveExplorer.CommandBars.ActiveMenuBar


_
> .FindControl(Office.MsoControlType.msoControlPopup, , "Calendarios
> de R y D", True, True)
> If newmenu IsNot Nothing Then
> newmenu.Delete(True)
> End If

> 'Add new menu
> menu = menuBar.Controls.Add(Office.MsoControlType.msoControlPopup,
> Temporary:=False)
> If menu IsNot Nothing Then
> 'edit the menu properties
> menu.Caption = "Calendarios de R y D"
> menu.Tag = "Calendarios de R y D"
> 'add a submenu to the menu and set its properties

> MenuItem1 =
> menu.Controls.Add(Office.MsoControlType.msoControlButton, , , Before:=1,
> Temporary:=True)
> MenuItem2 =
> menu.Controls.Add(Office.MsoControlType.msoControlButton, , , Before:=2,
> Temporary:=True)
> MenuItem3 =
> menu.Controls.Add(Office.MsoControlType.msoControlButton, , , Before:=3,
> Temporary:=True)
> MenuItem4 =
> menu.Controls.Add(Office.MsoControlType.msoControlButton, , , Before:=4,
> Temporary:=True)

> With MenuItem1

> .Style = Office.MsoButtonStyle.msoButtonIconAndCaption
> .Caption = "Calculate Baby's Calendar"
> .FaceId = 65
> .Tag = "Tag Cloud Submenu"
> '.OnAction = "MenuItem1_Click"
> End With
> With MenuItem2
> .Style = Office.MsoButtonStyle.msoButtonIconAndCaption
> .Caption = "Calculate Diane's Responsibilities"
> .FaceId = 66
> .Tag = "Otra nube"
> '.OnAction = "MenuItem2_Click"
> End With
> With MenuItem3
> .Style = Office.MsoButtonStyle.msoButtonIconAndCaption
> .Caption = "Free Diane's Unmovables"
> .FaceId = 65
> .Tag = "Otra nube"
> '.OnAction = "MenuItem3_Click"
> End With
> With MenuItem4
> .Style = Office.MsoButtonStyle.msoButtonIconAndCaption
> .Caption = "Create Diane's Unmovables"
> .FaceId = 65
> .Tag = "Otra nube"
> '.OnAction = "MenuItem4_Click"
> End With

> 'Add an event handler to the menu item
> AddHandler MenuItem1.Click, AddressOf MenuItem1_Click
> AddHandler MenuItem2.Click, AddressOf menuItem2_Click
> AddHandler MenuItem3.Click, AddressOf menuItem3_Click
> AddHandler MenuItem4.Click, AddressOf menuItem4_Click

> 'Display the new menu
> menu.Visible = True

> End If

> End Sub
 
Top