Outlook VBA: Menü wieder löschen

13/03/2009 - 16:41 von Beck, Alwin | Report spam
Outlook 2003

Hallo,
beim Start von Outlook erzeuge ich mein Menü über folg. Code :

Set MenuBar = Application.ActiveExplorer.CommandBars("Menu Bar")

Set Menu = MenuBar.Controls.Add(Type:=msoControlPopup)
Menu.Caption = "MeinMenü"

Set Control = Menu.Controls.Add
With Control
.Caption = "Mail: Aktualisierung KK"
.OnAction = "MailSenden_KK"
.Style = msoButtonCaption
End With

Wenn ich dann Outlook beende und wieder starte wird wieder ein
neues Menü erstellt usw.
Ich müsste doch beim Beenden dann das Menü wieder löschen können.
Wie mache ich das ?

Danke
Gruß
albe
 

Lesen sie die antworten

#1 Beck, Alwin
13/03/2009 - 17:42 | Warnen spam
Hallo,
habe nun folg. ausprobiert, jedoch bei jedem Neustart kommen
die Menüpunkte immer wieder dazu - was stimmt hier nicht
bezüglich auf die Prüfung ob der Eintrag shcon vorhanden ist ?

Private Sub Application_Startup()

'ERstellt ein neues Menü mit den Eintràgen

Dim cbar As CommandBar
Dim ctlcbar As CommandBarControl
Dim ctlNew01 As CommandBarControl
Dim ctlNew02 As CommandBarControl
Dim ctlNew03 As CommandBarControl
Dim ctlNew04 As CommandBarControl




' Verweis auf die Menüleiste setzen
Set cbar = ActiveExplorer.CommandBars("Menu Bar")
On Error Resume Next
Set ctlcbar = cbar.Controls("&MeinMenü")
If ctlcbar Is Nothing Then
Set ctlcbar = cbar.Controls.Add(Type:=msoControlPopup, ID:=1)
End If

With ctlcbar
.Caption = "&MeinMenü"
End With
' Prüfen, ob Eintrag bereits vorhanden ist.
Set ctlNew01 = ctlcbar.Controls("Neuer Eintrag")
' oder per FindControl suchen
On Error GoTo 0

If ctlNew01 Is Nothing Then
Set ctlNew01 = cbar.FindControl(Type:=msoControlButton, Tag:="Neuer
Eintrag", ID:=1, Recursive:=True)
End If
If ctlNew01 Is Nothing Then
Set ctlNew01 = ctlcbar.Controls.Add(Type:=msoControlButton, ID:=1)
End If


With ctlNew01
.BeginGroup = True ' Trennt den Eintrag ab
' mit FaceId kann ein integrietes Symbol verwendet werden
.FaceId = 3817
.Caption = "Mail: Update Krankenkassen"
' Vollstàndiger Verweis auf das Makro
.OnAction = "MailSenden_Link_KK"
' optional z.B. zur Identifizierung
.Tag = "NeuerEintrag"
.TooltipText = "Sendet eine E-Mail an Personalbuchhaltung
Aktualisierung Krankenkassen"
End With



If ctlNew02 Is Nothing Then
Set ctlNew02 = cbar.FindControl(Type:=msoControlButton, Tag:="Neuer
Eintrag", ID:=1, Recursive:=True)
End If
If ctlNew02 Is Nothing Then
Set ctlNew02 = ctlcbar.Controls.Add(Type:=msoControlButton, ID:=1)
End If


With ctlNew02
.BeginGroup = True ' Trennt den Eintrag ab
' mit FaceId kann ein integrietes Symbol verwendet werden
.FaceId = 3817
.Caption = "Mail: Update Lohnprogramm"
' Vollstàndiger Verweis auf das Makro
.OnAction = "MailSenden_Link_PGMUPDATE"
' optional z.B. zur Identifizierung
.Tag = "NeuerEintrag"
.TooltipText = "Sendet eine E-Mail an Personalbuchhaltung Update
Lohnsoftware"
End With



If ctlNew03 Is Nothing Then
Set ctlNew03 = cbar.FindControl(Type:=msoControlButton, Tag:="Neuer
Eintrag", ID:=1, Recursive:=True)
End If
If ctlNew03 Is Nothing Then
Set ctlNew03 = ctlcbar.Controls.Add(Type:=msoControlButton, ID:=1)
End If


With ctlNew03
.BeginGroup = True ' Trennt den Eintrag ab
' mit FaceId kann ein integrietes Symbol verwendet werden
.FaceId = 3817
.Caption = "Mail: Zeitnachtrag"
' Vollstàndiger Verweis auf das Makro
.OnAction = "MailSenden_Zeitnachtrag"
' optional z.B. zur Identifizierung
.Tag = "NeuerEintrag"
.TooltipText = "Sendet eine E-Mail an Personalbuchhaltung
Zeitnachtrag"
End With


If ctlNew04 Is Nothing Then
Set ctlNew04 = cbar.FindControl(Type:=msoControlButton, Tag:="Neuer
Eintrag", ID:=1, Recursive:=True)
End If
If ctlNew04 Is Nothing Then
Set ctlNew04 = ctlcbar.Controls.Add(Type:=msoControlButton, ID:=1)
End If

With ctlNew04
.BeginGroup = True ' Trennt den Eintrag ab
' mit FaceId kann ein integrietes Symbol verwendet werden
.FaceId = 3817
.Caption = "Mail User: Programmupdate"
' Vollstàndiger Verweis auf das Makro
.OnAction = "MailSenden_User_PGMUPDATE"
' optional z.B. zur Identifizierung
.Tag = "NeuerEintrag"
.TooltipText = "Sendet eine E-Mail an Benutzer bezüglich
Programmupdate"
End With


' Eintrag anzeigen
cbar.Visible = True
End Sub

Danke
Gruß
Albe

Ähnliche fragen