Auch in Outlook lassen sich wie in Word eigene Menüeinträge erzeugen. Um allerdings einem Menüeintrag ein Makro zuzuweisen, muss dieses vollständig mit dem VBAIDE-Pfad angegeben werden.
Das folgende Beispiel zeigt, wie ein neuer Menüpunkt mit einem Menüeintrag angelegt wird, sofern nicht bereits ein gleichnamiger Eintrag existiert:
Dabei wird zuerst geprüft, ob der Menüpunkt bereits existiert, ansonsten wird er neu angelegt. Diesem Menüpunkt wird dann ein neuer Menüeintrag hinzugefügt; dabei wird wieder geprüft, ob dieser bereits existiert. Als Aktion (.OnAction-Eigenschaft des Controls) muss das Makro mit vollständigem Pfad innerhalb der VBAIDE angegeben werden. In diesem Beispiel das Makro MeinMakro im Modul modTest des Projektes Projekt1:
"Projekt1.modTest.MeinMakro".
Zur eindeutigen Identifizierung wird dazu ein Eintrag in die Tag-Eigenschaft eingetragen, über die der Eintrag gesucht werden kann.
Public Sub CreateMenu()
Dim cbar As CommandBar
Dim ctlcbar As CommandBarControl
Dim ctlNew As CommandBarControl
' Verweis auf die Menüleiste setzen
Set cbar = ActiveExplorer.CommandBars("Menu Bar")
On Error Resume Next
Set ctlcbar = cbar.Controls("&Eigenes")
If ctlcbar Is Nothing Then
Set ctlcbar = cbar.Controls.Add(Type:=msoControlPopup, ID:=1)
End If
With ctlcbar
.Caption = "&Eigenes"
End With
' Prüfen, ob Eintrag bereits vorhanden ist.
Set ctlNew = ctlcbar.Controls("Neuer Eintrag")
' oder per FindControl suchen
On Error GoTo 0
If ctlNew Is Nothing Then
Set ctlNew = cbar.FindControl(Type:=msoControlButton, Tag:="Neuer Eintrag", ID:=1, Recursive:=True)
End If
If ctlNew Is Nothing Then
Set ctlNew = ctlcbar.Controls.Add(Type:=msoControlButton, ID:=1)
End If
With ctlNew
.BeginGroup = True ' Trennt den Eintrag ab
' mit FaceId kann ein integrietes Symbol verwendet werden
.FaceId = 3817
.Caption = "Neuer Eintrag"
' Vollständiger Verweis auf das Makro
.OnAction = "Projekt1.modTest.MeinMakro"
' optional z.B. zur Identifizierung
.Tag = "NeuerEintrag"
.TooltipText = "Hier steht der Tooltipp"
End With
' Eintrag anzeigen
cbar.Visible = True
End Sub
|